📜  在java中计算字符串中的重复字符(1)

📅  最后修改于: 2023-12-03 15:37:36.334000             🧑  作者: Mango

在 Java 中计算字符串中的重复字符

在 Java 中,计算字符串中重复字符的数量并不是一项非常困难的任务,但是需要采取特定的算法和数据结构来实现。

算法概述

我们可以通过遍历字符串并使用一个 HashMap 来计算字符的出现次数来实现这个算法。具体来说,算法如下:

  1. 创建一个 HashMap,用于存储每个字符出现的次数。
  2. 遍历字符串,对于每个字符,将其添加到 HashMap 中,并将其出现次数加 1。
  3. 扫描 HashMap,找出出现次数大于 1 的字符,计算它们在字符串中出现的次数。
代码实现
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        String str = "hello world";
        Map<Character, Integer> charCountMap = new HashMap<>();
        for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            if (charCountMap.containsKey(ch)) {
                charCountMap.put(ch, charCountMap.get(ch) + 1);
            } else {
                charCountMap.put(ch, 1);
            }
        }
        System.out.println("重复字符:");
        for (Map.Entry<Character, Integer> entry : charCountMap.entrySet()) {
            if(entry.getValue() > 1){
                System.out.println("'" + entry.getKey() + "'出现了"+ entry.getValue()+"次");
            }
        }
    }
}

这段代码会输出字符串 hello world 中出现重复的字符及其出现的次数。可以通过修改 str 变量的值来计算其他字符串中的重复字符。

总结

本文介绍了在 Java 中计算字符串中重复字符的算法和代码实现。使用 HashMap 是一种通用的方法,它能够在 O(n) 的时间复杂度内完成计算,其中 n 是字符串的长度。这种方法不仅简单易懂,而且也非常高效。