- Given String in java.
- We would like to print duplicate or repeated characters in a String.
Examples: Duplicate or repeated characters in a String (Java)
Example 1 : Input String = "ABCDAB" The duplicate characters are A B So, output of program should be A B Example 2: Input String = "google rocks" The duplicate characters are g and o So, output of our program should be :g o |
Algorithm to find duplicate characters in String (Java):
- User enter the input string.
- Convert input string to character buffer using String.toCharArray
- Create Set<Character> setDuplicateChars to hold repeated characters.
- Also, create Set<Character> setDistinctChars to hold unique characters.
- Loop through the character buffer and add characters to setDistinctChars.
- If value is already present in setDistinctChars then it’s duplicate chars.
- Insert elements to setDistinctChars using add method of set class.
- Use the property add method of set class to check duplicate characters
- add method returns false if set already contain the specified element
- So, If insertion to setDistinctChars returns false, then add repeated character to setDuplicateChars.
Add method of Set class to insert element:
Method Name | Description |
---|---|
boolean add(E e) | Adds the specified element to this set if it is not already present,if set already contains the element, the call leaves the set unchanged and returns false |
Program: print duplicate characters of string in java
package org.learn; import java.util.HashSet; import java.util.Set; public class DuplicateCharacters { public static final void duplicateChars(String input) { char []chInput = input.toCharArray(); Set setDuplicated = new HashSet<>(); Set distinctChars = new HashSet<>(); for ( char ch: chInput) { if (distinctChars.add(ch) == false ) //if character is duplicated, then insert it into //duplicated set setDuplicated.add(ch); } //print duplicated characters System.out.print( "Duplicate characters are: " ); setDuplicated.forEach(ch -> System.out.print(ch + " " )); } public static void main(String[] args) { String input = "ABCDAB" ; System.out.println( "Input string is:" +input); duplicateChars(input); System.out.println( "\n******************************" ); input = "google rocks" ; System.out.println( "\nInput string is:" +input); duplicateChars(input); } } |
Output: print duplicate or repeated characters of string in java
Input string is:ABCDAB Duplicate characters are: A B ****************************** Input string is:google rocks Duplicate characters are: g o |