➤ Sum of digits in a String
➤ Count No of Vowels String
➤ String Pattern Programs in Java
➤ Take String Input In Java
➤ Take Multiple String Input in Java
➤ How To Reverse a String In Java
➤ Remove Special Characters
➤ String – Remove Character
➤ String Palindrome In Java
➤ Sort String In Java
➤ How to Compare Strings In Java
➤ Second Occurrence of Character
➤ Replace nth Occurrence String
➤ Last Occurrence of Character
➤ Uppercase & Lowercase
➤ Java Check If Char is Uppercase
➤ Check If String is Uppercase
➤ Swap Characters in String Java
➤ Java String indexOf() Method
➤ How to Replace Dot in Java?
➤ How to Find Length of String
➤ Substring Method In Java
➤ Split Method In Java
Find Repeating Pattern In String Java | In the below program, we have found the repeating pattern with maximum length. In the given string there could be multiple repeating patterns, and the below program finds the repeating pattern with max length.
To solve the problem we have used Java string length(), charAt() method, substring() method, and Math class max() methods. The max() method of the Java Math class returns the maximum value among the given input values.
The length() method returns the length of the given string. The charAt() method returns the character at the given index from the given string. Similarly, the Java string substring() method returns the substring based on the given inputs.
Program to Find Repeating Pattern In String Java
public class Main {
public static String maxRepeat(String string) {
String string1 = "";
int n = string.length();
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
String x =
repeating(string.substring(i, n), string.substring(j, n));
if (x.length() > string1.length()) {
string1 = x;
}
}
}
return string1;
}
private static String repeating(String str, String str1) {
int n = Math.min(str.length(), str1.length());
for (int i = 0; i < n; i++) {
if (str.charAt(i) != str1.charAt(i)) {
return str.substring(0, i);
}
}
return str.substring(0, n);
}
public static void main(String[] args) {
String string1 = "acbdfghybdf";
String string2 = "acbdfghybdfghabcd";
System.out.println("Max length repeating pattern in string1: "
+ maxRepeat(string1));
System.out.println("Max length repeating pattern in string2: "
+ maxRepeat(string2));
}
}
Output:-
Max length repeating pattern in string1: bdf
Max length repeating pattern in string2: bdfgh
We have defined maxRepeat() and repeating() methods to find the repeating patterns in string Java. We have taken “acbdfghybdf” and “acbdfghybdfghabcd” as the input strings. In the string “acbdfghybdf” substring “bdf” is repeated 2 times and it is the only substring that is repeated.
In the string “acbdfghybdfghabcd”, the following sub-strings are repeated:- “bdfgh”, and “abcd”. Among these substrings “bdfgh” has max length, therefore, the maxRepeat() method returns the “bdfgh” substring. You can also try with different inputs.
If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or do you find anything incorrect? Let us know in the comments. Thank you!