Java Program to Count the Number of Occurrences of Substring in a String

In this post, we will discuss and write Java program to count the number of occurrences of substring in a String
Let's write most efficient program with simple logic.

Java Program to Count the Number of Occurrences of Substring in a String

In the below program, we have countOccurrencesOf(String str, String sub) a generic method, here we simply pass input string and substring as arguments and method return number of ocurrences of the substring.
package com.javaguides.strings.examples;

/**
 * 
 * Java program to count number of occurrence of substring in given string.
 * @author javaguides.net
 * 
 */
public class CountOccuranceOfSubString {

 public static void main(String[] args) {
  int count = countOccurrencesOf("javadevelopersguides","java");
  System.out.println("Count number of occurrences of substring 'java' "
    + " in string 'javadevelopersguides' : " + count );
  int count1 = countOccurrencesOf("javajavaguides","java");
  System.out.println("Count number of occurrences of substring 'java'"
    + "  in string 'javajavaguides' : " + count1 );
 }
 
 public static boolean hasLength( String str) {
  return (str != null && !str.isEmpty());
 }
 
 /**
  * Count the occurrences of the substring {@code sub} in string {@code str}.
  * @param str string to search in
  * @param sub string to search for
  */
 public static int countOccurrencesOf(String str, String sub) {
  if (!hasLength(str) || !hasLength(sub)) {
   return 0;
  }

  int count = 0;
  int pos = 0;
  int idx;
  while ((idx = str.indexOf(sub, pos)) != -1) {
   ++count;
   pos = idx + sub.length();
  }
  return count;
 }
}
Output:
Count number of occurrences of substring 'java'  in string 'javadevelopersguides' : 1
Count number of occurrences of substring 'java'  in string 'javajavaguides' : 2
You can use this methods as common utility static method in you project work.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

Related String Programs

Note that these programs are asked in interviews.

Comments