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:
Spring Security Login Page with React
Java Program to implement Bi Directional Map
Java Program to Generate a Graph for a Given Fixed Degree Sequence
Use Liquibase to Safely Evolve Your Database Schema
Java Program to Implement Find all Forward Edges in a Graph
Java Program to Solve Set Cover Problem assuming at max 2 Elements in a Subset
Java equals() and hashCode() Contracts
Convert a Map to an Array, List or Set in Java
Instance Profile Credentials using Spring Cloud
Guava CharMatcher
Batch Processing with Spring Cloud Data Flow
Jackson – JsonMappingException (No serializer found for class)
Converting String to Stream of chars
Spring Security Basic Authentication
Java Program to Find Path Between Two Nodes in a Graph
Java Program to Implement Knight’s Tour Problem
Java Program to Find the Median of two Sorted Arrays using Binary Search Approach
Registration – Activate a New Account by Email
Case-Insensitive String Matching in Java
ExecutorService – Waiting for Threads to Finish
Composition, Aggregation, and Association in Java
Java Program to Implement Treap
Java Program to Find Whether a Path Exists Between 2 Given Nodes
Java Program to Print the Kind of Rotation the AVL Tree is Undergoing
Java Program to Check Cycle in a Graph using Graph traversal
Guide to Escaping Characters in Java RegExps
Hướng dẫn Java Design Pattern – Singleton
SOAP Web service: Authentication trong JAX-WS
Java Program to Implement LinkedTransferQueue API
Jackson vs Gson
Guide to BufferedReader
Comparing getPath(), getAbsolutePath(), and getCanonicalPath() in Java