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:
ArrayList trong java
Java Program to Implement Lloyd’s Algorithm
The Order of Tests in JUnit
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Copy a List to Another List in Java
Java Program to Check if a Given Graph Contain Hamiltonian Cycle or Not
Convert Time to Milliseconds in Java
Predicate trong Java 8
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line
Hướng dẫn Java Design Pattern – State
Java Program to Describe the Representation of Graph using Incidence List
Java Program to Implement Pairing Heap
Period and Duration in Java
Java Program to Implement Dijkstra’s Algorithm using Priority Queue
Spring @RequestMapping New Shortcut Annotations
Reactive WebSockets with Spring 5
Java Program to Find a Good Feedback Vertex Set
Guide to java.util.Formatter
Spring Security with Maven
Java 8 and Infinite Streams
OAuth 2.0 Resource Server With Spring Security 5
Spring WebClient Requests with Parameters
Limiting Query Results with JPA and Spring Data JPA
Jackson JSON Views
Join and Split Arrays and Collections in Java
Jackson Date
Java Program to Implement Min Heap
Java Program to Implement Hopcroft Algorithm
Java Program to Implement Suffix Tree
Java Program to implement Bit Set
Spring Boot - Rest Controller Unit Test
Unsatisfied Dependency in Spring