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:
An Intro to Spring Cloud Contract
Checking for Empty or Blank Strings in Java
Java Program to Implement Queue
Convert String to int or Integer in Java
Introduction to Using FreeMarker in Spring MVC
Spring Boot - Code Structure
Assert an Exception is Thrown in JUnit 4 and 5
LinkedHashSet trong java
Java Program to Print the Kind of Rotation the AVL Tree is Undergoing
Java Program to Implement Borwein Algorithm
Spring Security Authentication Provider
Java Program to Perform Cryptography Using Transposition Technique
Chương trình Java đầu tiên
Java Program to Compute the Area of a Triangle Using Determinants
Spring Boot - Tomcat Deployment
Hướng dẫn sử dụng String Format trong Java
Java Program to Check Whether an Input Binary Tree is the Sub Tree of the Binary Tree
Java Program to Compute Cross Product of Two Vectors
Guide to System.gc()
Guide to BufferedReader
Java Program to Implement TreeSet API
Jackson JSON Views
Java Program to Implement Dijkstra’s Algorithm using Priority Queue
Tạo ứng dụng Java RESTful Client không sử dụng 3rd party libraries
Hashtable trong java
Introduction to the Java ArrayDeque
Java Program to Use Above Below Primitive to Test Whether Two Lines Intersect
Java Program to Implement Disjoint Sets
Get and Post Lists of Objects with RestTemplate
Java Program to Implement Queue using Linked List
Converting Between Byte Arrays and Hexadecimal Strings in Java
Hướng dẫn Java Design Pattern – Object Pool