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:
Một số từ khóa trong Java
Working With Maps Using Streams
Working with Kotlin and JPA
Java Program to Implement Dijkstra’s Algorithm using Priority Queue
Java Program to Implement Aho-Corasick Algorithm for String Matching
How to Kill a Java Thread
Database Migrations with Flyway
Object Type Casting in Java
Jackson – Bidirectional Relationships
Spring Data JPA Delete and Relationships
Java Program to Use Dynamic Programming to Solve Approximate String Matching
Spring Data JPA @Query
Java Program to Perform LU Decomposition of any Matrix
Deploy a Spring Boot App to Azure
A Guide to @RepeatedTest in Junit 5
Introduction to the Java ArrayDeque
Jackson – Change Name of Field
Spring Boot - Tracing Micro Service Logs
Spring RestTemplate Request/Response Logging
Java Program to Implement the Vigenere Cypher
Guide to the Java ArrayList
Java Program to Implement Merge Sort on n Numbers Without tail-recursion
Spring Boot - Build Systems
Introduction to Project Reactor Bus
Guide to the Synchronized Keyword in Java
Java Program to Implement Tarjan Algorithm
Java Program to Implement Strassen Algorithm
Connect through a Proxy
Removing all Nulls from a List in Java
Java Program to Implement LinkedList API
Spring JDBC
Java Program to Implement the Binary Counting Method to Generate Subsets of a Set