你好,我正在尝试编写程序,该程序使用 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);
}
我想问一下如何忽略给定字符串中的空格、大写字母和标点符号。 所以它不会显示在结果中?
希望有人能帮帮我谢谢!
最佳答案
我建议在将不需要的字符传递到 HashMap
之前将其过滤掉。
例如,
sentence = sentence.replaceAll("[^a-z]", "");
会删除除小写字母以外的任何内容,并且
sentence = sentence.replaceAll("[^a-z0-9]", "");
会给你留下小写字母和数字。
如果你想将大写字母转换为小写字母而不是忽略它们,那么首先使用
sentence = sentence.toLowerCase();
关于java - 如何使用HashMap忽略字符串中的空格、大写字母和标点符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49416388/