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 Streams vs Vavr Streams
Java 9 Stream API Improvements
Java Program to Implement Johnson’s Algorithm
Java – InputStream to Reader
Spring Security Login Page with React
An Intro to Spring Cloud Security
Java – Reader to Byte Array
Java Program to Check Cycle in a Graph using Topological Sort
How to Store Duplicate Keys in a Map in Java?
Sử dụng Fork/Join Framework với ForkJoinPool trong Java
Spring Boot: Customize Whitelabel Error Page
A Guide to TreeSet in Java
LinkedList trong java
Spring Boot Configuration with Jasypt
Java Program to Implement Hopcroft Algorithm
Using Java Assertions
Introduction to Spring Cloud Netflix – Eureka
New Stream Collectors in Java 9
Java Program to Implement Sparse Array
Java Program to Implement Attribute API
Show Hibernate/JPA SQL Statements from Spring Boot
Java 8 and Infinite Streams
Hướng dẫn Java Design Pattern – Adapter
Custom Exception trong Java
Versioning a REST API
Java Program to Check the Connectivity of Graph Using DFS
Java Program to Implement Self organizing List
Convert String to int or Integer in Java
How to Remove the Last Character of a String?
Java Program to Implement Pairing Heap
Spring Webflux with Kotlin
Hashtable trong java