Java - 如何替换字符串中的重复字符?

时间:2018-03-22 10:46:21

标签: java string character

有人可以告诉我如何用" *"替换重复的字符。在一个字符串? 输入例如:" aacbbbz" - 输出应为" ** c *** z"

谢谢。

1 个答案:

答案 0 :(得分:2)

查看以下代码:

public class Test {
    public static void main(String[] args) {
        String str = "aacbbbz";
        Map<Character, Integer> items = new HashMap<Character, Integer>();
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (items.containsKey(c)) {
                int cnt = items.get(c);
                items.put(c, ++cnt);
            } else {
                items.put(c, 1);
            }
        }

        Set<Character> keys = items.keySet();
        for (Character ch : keys) {
            if (items.get(ch) > 1) {
                str = str.replaceAll(ch.toString(), "*");
            }
        }

        System.out.println("Output : " + str);
    }
}

输出是 Output : **c***z