- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Java Program for Anagram Substring Search
Following is an example for Anagram Substring Search in Java −
Example
public class Demo{ static final int max_val = 256; static boolean compare_vals(char my_arr_1[], char my_arr_2[]){ for (int i = 0; i < max_val; i++) if (my_arr_1[i] != my_arr_2[i]) return false; return true; } static void search_subs(String my_pattern, String my_text){ int pat_len = my_pattern.length(); int txt_len = my_text.length(); char[] count_pat = new char[max_val]; char[] count_txt = new char[max_val]; for (int i = 0; i < pat_len; i++){ (count_pat[my_pattern.charAt(i)])++; (count_txt[my_text.charAt(i)])++; } for (int i = pat_len; i < txt_len; i++){ if (compare_vals(count_pat, count_txt)) System.out.println("The element was found at index " + (i - pat_len)); (count_txt[my_text.charAt(i)])++; count_txt[my_text.charAt(i-pat_len)]--; } if (compare_vals(count_pat, count_txt)) System.out.println("The element was found at index " + (txt_len - pat_len)); } public static void main(String args[]){ String my_text = "ABNFGHABNJGH"; String my_pattern = "NFGH"; search_subs(my_pattern, my_text); } }
Output
The element was found at index 2
A class named Demo defines a constant value and a Boolean function that takes in two arrays. It iterates over both the arrays till the constant value is reached. It returns true or false depending on whether the elements in the array that compared were compared were equal or unequal.
Another static function takes in the text and the pattern that needs to be checked for in the text and iterate over the pattern and string. Both the counts of pattern and string are incremented. Again a ‘for’ loop is run and the counts of both the pattern and text are compared. If they are equal, the index is displayed. Otherwise, a relevant message is displayed. In the main class, the pattern and the text are defined and the function is called.
- Related Articles
- Python Program for Anagram Substring Search
- C Program for Anagram Substring Search
- Anagram Substring Search using Python
- Java Program to search for a Substring from a specified index
- Anagram Pattern Search
- Java Program for Binary Search (Recursive)
- Java Program to set a range for displaying substring
- How can I search a character or substring in java?
- Java Program to Check if two strings are anagram
- Python Program for Binary Search
- Python Program for Linear Search
- 8085 program for Binary search
- Java Program to search for last index of a group of characters
- C/C++ Program for Linear Search?
- Java program to check if binary representations of two numbers are anagram
