找出字符串中重复字符

本文提供了一个Java程序示例,用于找出并打印指定字符串中的所有重复字符及其出现次数。通过使用HashMap来记录每个字符出现的频率,进而筛选出重复字符。
package javaBasic;

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

/**
 * 
 * Java Program to find duplicate characters in String.
 * 
 * 
 * 
 * 
 * 
 * @author http://java67.blogspot.com
 */

public class FindDuplicateCharacters {

    public static void main(String args[]) {

        printDuplicateCharacters("Programming");

        printDuplicateCharacters("Combination");

        printDuplicateCharacters("Java");

    }

    /*
     * 
     * Find all duplicate characters in a String and print each of them.
     */

    public static void printDuplicateCharacters(String word) {

        char[] characters = word.toCharArray();

        // build HashMap with character and number of times they appear in
        // String

        Map<Character, Integer> charMap = new HashMap<Character, Integer>();

        for (Character ch : characters) {

            if (charMap.containsKey(ch)) {

                charMap.put(ch, charMap.get(ch) + 1);

            } else {

                charMap.put(ch, 1);

            }

        }

        // Iterate through HashMap to print all duplicate characters of String

        Set<Map.Entry<Character, Integer>> entrySet = charMap.entrySet();

        System.out.printf("List of duplicate characters in String '%s' %n",
                word);

        for (Map.Entry<Character, Integer> entry : entrySet) {

            if (entry.getValue() > 1) {

                System.out.printf("%s : %d %n", entry.getKey(), entry
                        .getValue());

            }

        }

    }

}


转载于:https://my.oschina.net/u/1412027/blog/206103

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值