Java 实例 在String中查找重复的字符

该程序将找出String中的重复字符并显示它们的计数。

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Details {

  public void countDupChars(String str){

    //Create a HashMap 
    Map<Character, Integer> map = new HashMap<Character, Integer>(); 

    //Convert the String to char array
    char[] chars = str.toCharArray();

    /* logic: char are inserted as keys and their count
     * as values. If map contains the char already then
     * increase the value by 1
     */
    for(Character ch:chars){
      if(map.containsKey(ch)){
         map.put(ch, map.get(ch)+1);
      } else {
         map.put(ch, 1);
        }
    }

    //Obtaining set of keys
    Set<Character> keys = map.keySet();

    /* Display count of chars if it is
     * greater than 1\. All duplicate chars would be 
     * having value greater than 1.
     */
    for(Character ch:keys){
      if(map.get(ch) > 1){
        System.out.println("Char "+ch+" "+map.get(ch));
      }
    }
  }

  public static void main(String a[]){
    Details obj = new Details();
    System.out.println("String: BeginnersBook.com");
    System.out.println("-------------------------");
    obj.countDupChars("BeginnersBook.com");

    System.out.println("\nString: ChaitanyaSingh");
    System.out.println("-------------------------");
    obj.countDupChars("ChaitanyaSingh");

    System.out.println("\nString: #@[email protected]!#$%!!%@");
    System.out.println("-------------------------");
    obj.countDupChars("#@[email protected]!#$%!!%@");
  }
}

输出:

String: BeginnersBook.com
-------------------------
Char e 2
Char B 2
Char n 2
Char o 3

String: ChaitanyaSingh
-------------------------
Char a 3
Char n 2
Char h 2
Char i 2

String: #@[email protected]!#$%!!%@
-------------------------
Char # 2
Char ! 3
Char @ 3
Char $ 2
Char % 2

赞(0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Java 实例