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 Find Maximum Element in an Array using Binary Search
Checked and Unchecked Exceptions in Java
Java Program to Check whether Undirected Graph is Connected using DFS
So sánh HashSet, LinkedHashSet và TreeSet trong Java
Java Program to Implement Gabow Algorithm
Jackson vs Gson
Properties with Spring and Spring Boot
Java Program to Check whether Graph is a Bipartite using BFS
Java Program to Describe the Representation of Graph using Adjacency List
JPA/Hibernate Persistence Context
Java Program to Implement Ternary Search Algorithm
Registration with Spring Security – Password Encoding
Java Program to Implement Find all Forward Edges in a Graph
Simple Single Sign-On with Spring Security OAuth2
Write/Read cookies using HTTP and Read a file from the internet
Send email with JavaMail
Spring Data JPA @Query
Java Program to Implement Graph Structured Stack
Java Program to Check if a Given Set of Three Points Lie on a Single Line or Not
Spring Cloud Connectors and Heroku
Java Concurrency Interview Questions and Answers
Introduction to Eclipse Collections
Java Program to Perform Stooge Sort
Comparing Two HashMaps in Java
Java Program to Check Whether a Directed Graph Contains a Eulerian Cycle
Java Program to Construct K-D Tree for 2 Dimensional Data
Spring RestTemplate Error Handling
A Quick JUnit vs TestNG Comparison
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
Spring Boot Tutorial – Bootstrap a Simple Application
How to Add a Single Element to a Stream
HashSet trong Java hoạt động như thế nào?