codescracker
java

Java Program to Count Number of Repeated Characters in a String



« Java Tutorial Java Examples »

This article is created to cover a program in Java that count and prints the number of repeated or duplicate characters available in a given string. For example, if given string is Java Programming, then the output will be 4. Because the character a, r, g, and m are available for more than one times.

Count Number of Repeated Characters in String - Basic Version

The question is, write a Java program to count the number of repeated characters in a string. The string must be received by user at run-time of the program. Here is its sample run:

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      String str;
      char ch;
      int strLen, i, count, j, k, repChars=0;
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter the String: ");
      str = s.nextLine();
      
      strLen = str.length();
      char[] arr = new char[strLen];
      
      for(i=0; i<strLen; i++)
         arr[i] = str.charAt(i);
      
      for(i=0; i<strLen; i++)
      {
         ch = arr[i];
         count = 0;
         for(j=(i+1); j<strLen; j++)
         {
            if(ch==arr[j])
            {
               count++;
               for(k=j; k<(strLen-1); k++)
                  arr[k] = arr[k+1];
               strLen--;
               j--;
            }
         }
         if(count>0)
            repChars++;
      }
      
      System.out.println("\nTotal Number of Repeated Characters = " +repChars);
   }
}

The snapshot given below shows the sample run of above program with user input codescracker as string to count and print the total number of duplicate characters available in it:

java count repeated characters in string

That is, the character c, e, and r are the three characters available in repeated number of times. Therefore the output was 3.

Count Number of Repeated Characters in String - Complete Version

The problem with above program is, if user enters a string containing white spaces, then white space duplication also gets counted. Therefore let's modify the above program. Some other modification are also done in the program given below:

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      int i, count, j, k, repChars=0;
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter the String: ");
      String str = s.nextLine();
      
      str = str.replaceAll("\\s+", "");
      str = str.toLowerCase();
      int strLen = str.length();
      char[] arr = new char[strLen];
      
      for(i=0; i<strLen; i++)
         arr[i] = str.charAt(i);
      
      for(i=0; i<strLen; i++)
      {
         count = 0;
         for(j=(i+1); j<strLen; j++)
         {
            if(arr[i]==arr[j])
            {
               count++;
               for(k=j; k<(strLen-1); k++)
                  arr[k] = arr[k+1];
               strLen--;
               j--;
            }
         }
         if(count>0)
            repChars++;
      }
      
      if(repChars==0)
         System.out.println("\nNo repeated character found.");
      else if(repChars==1)
         System.out.println("\nThere is only one repeated character found.");
      else
         System.out.println("\nThere are " +repChars+ " characters found in the String.");
   }
}

Here is its sample run with user input Java as string:

count repeated characters in Java

Here is another sample run with user input codescracker dot com:

java program count number of repeatec characters in string

In above program, the statement:

str = str.replaceAll("\\s+", "");

is used to remove all white spaces (single space, multiple space(tabs)). And the following statement:

str = str.toLowerCase();

is used to convert the whole string in lowercase. Because, same character in uppercase and lowercase gets treated as different character.

Java Online Test


« Java Tutorial Java Examples »



© Copyright 2021. All Rights Reserved.

CodesCracker