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:
Java Program to Implement Selection Sort
Java Program to Perform Sorting Using B-Tree
A Guide to Queries in Spring Data MongoDB
Java Program to Implement Ternary Search Algorithm
Period and Duration in Java
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?
Guide to Spring Cloud Kubernetes
Servlet 3 Async Support with Spring MVC and Spring Security
Generating Random Numbers in a Range in Java
Jackson Exceptions – Problems and Solutions
Java Program to Represent Graph Using 2D Arrays
Java Program to Implement Interpolation Search Algorithm
Java Program to Implement Suffix Array
Spring 5 Functional Bean Registration
Java Program to Solve Tower of Hanoi Problem using Stacks
Java Program to Implement Quick sort
Từ khóa throw và throws trong Java
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
Sorting in Java
Java Program to Implement Sorted Vector
Spring WebClient vs. RestTemplate
The DAO with Spring and Hibernate
Java Program to Implement Solovay Strassen Primality Test Algorithm
Using JWT with Spring Security OAuth
Chuyển đổi từ HashMap sang ArrayList
Removing all Nulls from a List in Java
Hướng dẫn Java Design Pattern – Object Pool
Java Streams vs Vavr Streams
Java Program to Implement Self organizing List
A Guide To UDP In Java
Giới thiệu thư viện Apache Commons Chain
Spring Security Remember Me