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:
Spring @RequestMapping New Shortcut Annotations
StringBuilder vs StringBuffer in Java
Converting Between a List and a Set in Java
Spring Boot - Creating Docker Image
Tạo ứng dụng Java RESTful Client với thư viện OkHttp
Xây dựng ứng dụng Client-Server với Socket trong Java
Java Program to Implement Cubic convergence 1/pi Algorithm
Working With Maps Using Streams
Spring @RequestParam Annotation
Loại bỏ các phần tử trùng trong một ArrayList như thế nào?
Java Program to Implement IdentityHashMap API
Java Program to Find the Minimum Element of a Rotated Sorted Array using Binary Search approach
Java Program to Use Dynamic Programming to Solve Approximate String Matching
Java Program to Implement Patricia Trie
Bootstrapping Hibernate 5 with Spring
Java Program to Implement Hash Trie
Java 9 Stream API Improvements
New Features in Java 14
An Intro to Spring Cloud Security
Convert char to String in Java
OAuth2 Remember Me with Refresh Token
Spring Boot - Scheduling
Immutable Objects in Java
Java Program to Implement Rope
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Iterable to Stream in Java
Functional Interfaces in Java 8
Java Program to Sort an Array of 10 Elements Using Heap Sort Algorithm
Multi Dimensional ArrayList in Java
Reactive WebSockets with Spring 5
Spring Cloud – Securing Services
Java Program to Perform the Shaker Sort