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 Check Cycle in a Graph using Graph traversal
Java Program to Implement Adjacency List
How to Find an Element in a List with Java
Redirect to Different Pages after Login with Spring Security
New Features in Java 9
Introduction to Using FreeMarker in Spring MVC
Reading an HTTP Response Body as a String in Java
How to Convert List to Map in Java
Java Web Services – JAX-WS – SOAP
Java Program to Solve the Fractional Knapsack Problem
Java program to Implement Tree Set
The Registration API becomes RESTful
Java Program to Implement Self organizing List
Java Program to Implement Maximum Length Chain of Pairs
Logout in an OAuth Secured Application
Java List UnsupportedOperationException
REST Pagination in Spring
Disable DNS caching
Object cloning trong java
Java Program to Use rand and srand Functions
Jackson Date
Check If Two Lists are Equal in Java
Java Program to Use Above Below Primitive to Test Whether Two Lines Intersect
Spring WebClient vs. RestTemplate
Ignore Null Fields with Jackson
Jackson – JsonMappingException (No serializer found for class)
Java Program to Perform Partition of an Integer in All Possible Ways
Java Program to Remove the Edges in a Given Cyclic Graph such that its Linear Extension can be Found
Guide to Spring 5 WebFlux
Hướng dẫn Java Design Pattern – Singleton
Java Program to Find Nearest Neighbor for Dynamic Data Set
Converting Between Byte Arrays and Hexadecimal Strings in Java