This is a java program to repeatedly search a string from the sample string.
Here is the source code of the Java Program to Repeatedly Search the Same Text (such as Bible by building a Data Structure). 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 BoyerMooreAlgo
{
private final int BASE;
private int[] occurrence;
private String pattern;
public BoyerMooreAlgo(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 void search(String text)
{
int n = text.length();
int m = pattern.length();
int skip = 0;
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)
{
System.out.println("The text '" + pattern
+ "' is first found after the " + i + " position.");
i++;
}
}
if (skip == 0)
System.out.println("The text '" + pattern
+ "' is first found after the " + n + " position.");
}
}
public class ReperatedStringSearch
{
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();
BoyerMooreAlgo bm = new BoyerMooreAlgo(pattern);
bm.search(text);
sc.close();
}
}
Output:
$ javac ReperatedStringSearch.java $ java ReperatedStringSearch Enter the main string: Sanfoundry is No. 1 choice for Deep Hands-ON Trainings in SAN, Linux & C, Kernel & Device Driver Programming. Our Founder has trained employees of almost all Top Companies in India. Here are few of them: VMware, Citrix, Oracle, Motorola, Ericsson, Aricent, HP, Intuit, Microsoft, Cisco, SAP Labs, Siemens, Symantec, Redhat, Chelsio, Cavium Networks, ST Microelectronics, Samsung, LG-Soft, Wipro, TCS, HCL, IBM, Accenture, HSBC, Northwest Bank, Mphasis, Tata Elxsi, Tata Communications, Mindtree, Cognizant, mid size IT companies and many Startups. Students from top Universities and colleges such as NIT Trichy, BITS Pilani, University of California, Irvine, University of Texas, Austin & PESIT Bangalore have benefited a lot from these courses as well. The assignments and real time projects for our courses are of extremely high quality with excellent learning curve. Enter the string to be searched: C The text 'C' is first found after the 71 position. The text 'C' is first found after the 162 position. The text 'C' is first found after the 212 position. The text 'C' is first found after the 280 position. The text 'C' is first found after the 324 position. The text 'C' is first found after the 333 position. The text 'C' is first found after the 397 position. The text 'C' is first found after the 402 position. The text 'C' is first found after the 425 position. The text 'C' is first found after the 470 position. The text 'C' is first found after the 496 position. The text 'C' is first found after the 639 position.
Related posts:
StringBuilder vs StringBuffer in Java
Data Structure and Types
OAuth2 Remember Me with Refresh Token
File Upload with Spring MVC
Java Program to Implement Direct Addressing Tables
Adding a Newline Character to a String in Java
Introduction to Java Serialization
Java Program to Implement the One Time Pad Algorithm
Guide To CompletableFuture
Static Content in Spring WebFlux
Java Program to Permute All Letters of an Input String
Introduction to Spliterator in Java
Java Program to Implement ConcurrentSkipListMap API
Java Program to Implement Floyd-Warshall Algorithm
Collect a Java Stream to an Immutable Collection
Java Program to Implement Hash Tables with Linear Probing
RestTemplate Post Request with JSON
Java Program to Generate Random Hexadecimal Byte
Hướng dẫn tạo và sử dụng ThreadPool trong Java
The XOR Operator in Java
Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
Java Program to Perform Insertion in a 2 Dimension K-D Tree
Hướng dẫn Java Design Pattern – Decorator
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
Ignore Null Fields with Jackson
The Modulo Operator in Java
Java Program to Generate a Sequence of N Characters for a Given Specific Case
Java Program to Implement Ternary Search Tree
Jackson – JsonMappingException (No serializer found for class)
Java Program to Implement Suffix Tree
Java Program to Find the Longest Subsequence Common to All Sequences in a Set of Sequences
Kết hợp Java Reflection và Java Annotations