1. Overview
In this tutorial, We'll learn how to find the count of substring present in the input string in java.
Examples:
String: 222, substring = 22
Output: 2
String: madam, substring = ma
Output: 1
String: 1234, substring = 43
Output: 0
2. Java - Counting Substring Occurrences In A String using indexOf()
The below code is implemented based on the String class indexOf() method.
package com.javaprogramto.programs.strings.substring.count;
public class SubstringCountExample {
public static void main(String[] args) {
int count = countSubStringInString("222", "22");
System.out.println(count);
count = countSubStringInString("madam", "ma");
System.out.println(count);
}
public static int countSubStringInString(String string, String toFind) {
int position = 0;
int count = 0;
while ((position = string.indexOf(toFind, position)) != -1) {
position = position + 1;
count++;
}
return count;
}
}
Output:
2 1
3. Java - Counting Substring Occurrences In A String using Pattern and Match
package com.javaprogramto.programs.strings.substring.count;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SubstringCountExample2 {
public static void main(String[] args) {
int count = countSubStringInString("222", "22");
System.out.println(count);
count = countSubStringInString("madam", "ma");
System.out.println(count);
}
public static int countSubStringInString(String string, String toFind) {
Pattern pattern = Pattern.compile(Pattern.quote(toFind));
Matcher matcher = pattern.matcher(string);
int position = 0;
int count = 0;
while (matcher.find(position)) {
position = matcher.start() + 1;
count++;
}
return count;
}
}
This code also produces the same output as in above section.
4. Java - Counting Substring Occurrences In A String Using While Loop and charAt()
package com.javaprogramto.programs.strings.substring.count;
public class SubstringCountExample3 {
public static void main(String[] args) {
int count = countSubStringInString("22222", "22");
System.out.println(count);
count = countSubStringInString("madam", "ma");
System.out.println(count);
}
public static int countSubStringInString(String string, String toFind) {
int M = toFind.length();
int N = string.length();
int res = 0;
for (int i = 0; i <= N - M; i++) {
int j;
for (j = 0; j < M; j++) {
if (string.charAt(i + j) != toFind.charAt(j)) {
break;
}
}
if (j == M) {
res++;
j = 0;
}
}
return res;
}
}
Time complexity : O( M * N)
5. Conclusion
In this article, we've seen how to find the frequency of substring in the input string in java.

No comments:
Post a Comment
Please do not add any spam links in the comments section.