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:
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
Java Program to Perform Postorder Non-Recursive Traversal of a Given Binary Tree
Hướng dẫn Java Design Pattern – Intercepting Filter
Spring Boot - Google Cloud Platform
Java Program to Implement Hash Tables chaining with Singly Linked Lists
Queue Data Structure
An Intro to Spring Cloud Task
Java Program to Implement CountMinSketch
Jackson – Change Name of Field
Java Program to Find the Connected Components of an UnDirected Graph
Java Program to Implement Binary Tree
Java Program to Emulate N Dice Roller
Java Program to Implement Ternary Heap
Convert Hex to ASCII in Java
Integer Constant Pool trong Java
Java Program to Check Whether an Undirected Graph Contains a Eulerian Path
Java Program to Perform Deletion in a BST
Spring Security and OpenID Connect
Java Program to Generate Date Between Given Range
Tính trừu tượng (Abstraction) trong Java
Bootstrap a Web Application with Spring 5
Convert Hex to ASCII in Java
Checking for Empty or Blank Strings in Java
Java Program to Implement Johnson’s Algorithm
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Spring Boot - Logging
Java Program to Perform Quick Sort on Large Number of Elements
Upload and Display Excel Files with Spring MVC
Java Program to Implement Treap
Multipart Upload with HttpClient 4
Java Program to Implement Interval Tree
Java Program to Find kth Smallest Element by the Method of Partitioning the Array