This is a java program to perform Naive String matching algorithm.
Here is the source code of the Java Program to Perform Naive String Matching. 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; public class StringSearchUsingNaiveMethod { private final int BASE; private int[] occurrence; private String pattern; public StringSearchUsingNaiveMethod(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 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(); StringSearchUsingNaiveMethod nsm = new StringSearchUsingNaiveMethod( pattern); int first_occur_position = nsm.search(text); System.out.println("The text '" + pattern + "' is first found after the " + first_occur_position + " position."); sc.close(); } }
Output:
$ javac StringSearchUsingNaiveMethod.java $ java StringSearchUsingNaiveMethod 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: No. 1 The text 'No. 1 ' is first found after the 14 position.
Related posts:
HttpClient Timeout
Java Program to Implement Find all Forward Edges in a Graph
Handling Errors in Spring WebFlux
Java 8 Stream findFirst() vs. findAny()
Spring Data – CrudRepository save() Method
Java Program to Implement Bresenham Line Algorithm
Java Program to Implement Extended Euclid Algorithm
Implementing a Binary Tree in Java
Lớp Collections trong Java (Collections Utility Class)
Jackson Date
Java Program to Implement LinkedBlockingDeque API
Java Program to Find the Longest Path in a DAG
Debug a HttpURLConnection problem
Guide to @JsonFormat in Jackson
Java Program to Implement Graph Coloring Algorithm
Java Program to Generate Random Numbers Using Middle Square Method
Java Program to Solve a Matching Problem for a Given Specific Case
Difference Between Wait and Sleep in Java
Java Program to Perform Partial Key Search in a K-D Tree
Phương thức tham chiếu trong Java 8 – Method References
Java Program to Implement Hash Tables Chaining with Doubly Linked Lists
Hướng dẫn Java Design Pattern – Prototype
Receive email by java client
Introduction to Java Serialization
RestTemplate Post Request with JSON
Hướng dẫn Java Design Pattern – Memento
Spring Boot - Enabling HTTPS
Converting Java Date to OffsetDateTime
Using a Custom Spring MVC’s Handler Interceptor to Manage Sessions
Hướng dẫn sử dụng Java Annotation
@Before vs @BeforeClass vs @BeforeEach vs @BeforeAll
Quick Guide on Loading Initial Data with Spring Boot