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:
Phương thức forEach() trong java 8
Retrieve User Information in Spring Security
Java Program to Implement Karatsuba Multiplication Algorithm
Custom Cascading in Spring Data MongoDB
Giới thiệu Design Patterns
Java Program to Perform Stooge Sort
Java Program to Implement Ternary Tree
Giới thiệu Json Web Token (JWT)
Java Program to Implement wheel Sieve to Generate Prime Numbers Between Given Range
Spring Boot - Service Components
Guide to BufferedReader
Java Program to Implement DelayQueue API
Spring Boot - Exception Handling
Jackson Date
Ignore Null Fields with Jackson
Java Program to Implement the Monoalphabetic Cypher
Static Content in Spring WebFlux
Java Program to Find the Edge Connectivity of a Graph
Connect through a Proxy
Java Program to Implement Patricia Trie
Guava CharMatcher
Giới thiệu luồng vào ra (I/O) trong Java
Java Program to Encode a Message Using Playfair Cipher
The Order of Tests in JUnit
A Guide to the Java ExecutorService
Luồng Daemon (Daemon Thread) trong Java
Explain about URL and HTTPS protocol
Concrete Class in Java
How to Add a Single Element to a Stream
Spring WebFlux Filters
Java Program to Implement Gauss Jordan Elimination
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?