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:
Introduction to Spring Boot CLI
Java Program to Implement the MD5 Algorithm
Java Program to Generate Random Numbers Using Middle Square Method
Remove the First Element from a List
A Guide to the Java ExecutorService
Spring Boot - CORS Support
Java Program to Check for balanced parenthesis by using Stacks
Java Program to Check whether Directed Graph is Connected using DFS
Java Program to Implement LinkedHashMap API
Rest Web service: Filter và Interceptor với Jersey 2.x (P2)
Spring Boot - Database Handling
Java – Get Random Item/Element From a List
Java Program to Implement ConcurrentLinkedQueue API
Java – File to Reader
Prevent Brute Force Authentication Attempts with Spring Security
Java Program to Implement LinkedBlockingDeque API
Spring REST API + OAuth2 + Angular
Java Program to Find Strongly Connected Components in Graphs
Java Program to Implement RenderingHints API
Java Program to Implement Pairing Heap
Registration with Spring Security – Password Encoding
Hướng dẫn Java Design Pattern – Factory Method
Sorting in Java
Spring NoSuchBeanDefinitionException
Working with Network Interfaces in Java
Java Program to Solve the 0-1 Knapsack Problem
Chuyển đổi Array sang ArrayList và ngược lại
Send email with authentication
Java Switch Statement
Guide to java.util.Formatter
Java Program to Implement Trie
Java Program to Generate a Sequence of N Characters for a Given Specific Case