如何使用HashMap忽略字符串中的空格,大写字母和标点符号?

tyx*_*xod 3 java string collections hashmap

你好我正在尝试编写程序,它使用HashMap计算给定字符串中的所有字符,然后在控制台上打印结果,如:

{a = 2,s = 2,k = 1,m = 1,o = 1}

到目前为止,我有这样的事情:

public void result(String sentence) {
    int value;
    HashMap<Character, Integer> mp = new HashMap<Character, Integer>();
    for (int i = 0; i < sentence.length(); i++) {
        if (mp.containsKey(sentence.charAt(i))) {
            value = mp.get(sentence.charAt(i));
            value++;
            mp.put(sentence.charAt(i), value);

        } else {
            mp.put(sentence.charAt(i), 1);
        }
    }

    System.out.print(mp);
}
Run Code Online (Sandbox Code Playgroud)

我想问一下如何忽略给定字符串中的空格,大写字母和标点符号.所以它不会显示在结果中?

我希望有人能帮助我,谢谢你!

Mat*_*ter 5

我建议在将它传递给之前过滤掉你不想要的字符HashMap.

例如,

sentence = sentence.replaceAll("[^a-z]", "");
Run Code Online (Sandbox Code Playgroud)

会删除除小写字母以外的任何内容,以及

sentence = sentence.replaceAll("[^a-z0-9]", "");
Run Code Online (Sandbox Code Playgroud)

会留下小写字母和数字.

如果要将大写字母转换为小写而不是忽略它们,则首先使用

sentence = sentence.toLowerCase();
Run Code Online (Sandbox Code Playgroud)