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:
HttpClient 4 Cookbook
Hướng dẫn Java Design Pattern – Prototype
Exploring the Spring 5 WebFlux URL Matching
Java – Write an InputStream to a File
Spring Boot - Flyway Database
Assert an Exception is Thrown in JUnit 4 and 5
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?
Serverless Functions with Spring Cloud Function
Introduction to Liquibase Rollback
A Guide to TreeSet in Java
Java Program to implement Associate Array
Hướng dẫn Java Design Pattern – Decorator
Lớp LinkedHashMap trong Java
Spring Boot - Database Handling
Java Program to Implement Hash Tables
Spring Security Authentication Provider
Spring Cloud – Bootstrapping
Spring 5 WebClient
Spring Boot - Tomcat Port Number
Guide to Guava Table
Request Method Not Supported (405) in Spring
Disable Spring Data Auto Configuration
Tránh lỗi NullPointerException trong Java như thế nào?
Function trong Java 8
Java Program to Implement Skew Heap
Consuming RESTful Web Services
Send email with SMTPS (eg. Google GMail)
Overview of Spring Boot Dev Tools
How to Change the Default Port in Spring Boot
Converting Between Byte Arrays and Hexadecimal Strings in Java
Guide To CompletableFuture
Java Program to Check whether Graph is a Bipartite using BFS