This is a java program to search string using simple algorithm BoyerMoore.
Here is the source code of the Java Program to Implement the String Search Algorithm for Short Text Sizes. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
package com.maixuanviet.setandstring;
import java.util.Scanner;
class BoyerMoore
{
private final int BASE;
private int[] occurrence;
private String pattern;
public BoyerMoore(String pattern)
{
this.BASE = 256;
this.pattern = pattern;
occurrence = new int[BASE];
for (int c = 0; c < BASE; c++)
occurrence = -1;
for (int j = 0; j < pattern.length(); j++)
occurrence[pattern.charAt(j)] = j;
}
public int search(String text)
{
int n = text.length();
int m = pattern.length();
int skip;
for (int i = 0; i <= n - m; i += skip)
{
skip = 0;
for (int j = m - 1; j >= 0; j--)
{
if (pattern.charAt(j) != text.charAt(i + j))
{
skip = Math.max(1, j - occurrence[text.charAt(i + j)]);
break;
}
}
if (skip == 0)
return i;
}
return n;
}
}
public class StringSearch
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.print("Enter the main string: ");
String text = sc.nextLine();
System.out.print("Enter the string to be searched: ");
String pattern = sc.nextLine();
BoyerMoore bm = new BoyerMoore(pattern);
int first_occur_position = bm.search(text);
System.out.println("The text '" + pattern
+ "' is first found after the " + first_occur_position
+ " position.");
sc.close();
}
}
Output:
$ javac StringSearch.java $ java StringSearch Enter the main string: I will soon be working in Redmond USA with Mircosoft. Enter the string to be searched: soon The text 'soon' is first found after the 7 position.
Related posts:
@Lookup Annotation in Spring
Java Program to Implement Double Order Traversal of a Binary Tree
Java – Delete a File
Hướng dẫn Java Design Pattern – MVC
An Intro to Spring Cloud Zookeeper
Returning Image/Media Data with Spring MVC
Quick Guide on Loading Initial Data with Spring Boot
Introduction to Spring Cloud Stream
Comparing Strings in Java
Deploy a Spring Boot App to Azure
An Intro to Spring Cloud Task
Java Program to Implement Affine Cipher
REST Web service: Upload và Download file với Jersey 2.x
Constructor Injection in Spring with Lombok
Reversing a Linked List in Java
Java Program to Implement Find all Forward Edges in a Graph
Test a REST API with Java
A Guide to @RepeatedTest in Junit 5
The Thread.join() Method in Java
Spring Boot - Servlet Filter
Java Program to Implement Horner Algorithm
Java Program to Implement HashMap API
Guide to @JsonFormat in Jackson
Java Program to Implement SimpeBindings API
Java Switch Statement
A Guide To UDP In Java
Hướng dẫn Java Design Pattern – Mediator
Spring Boot - Tomcat Deployment
Mệnh đề Switch-case trong java
Introduction to PCollections
Java – Create a File
Configure a RestTemplate with RestTemplateBuilder