【发布时间】:2021-02-18 03:18:27
【问题描述】:
我对 java 比较陌生。我正在自己学习如何使用哈希图,我提出了一个关于如何在字符串中查找前三个单词的问题,但问题是删除字符串中的标点符号 - 双空格,逗号......当前代码仅适用对于 split() 函数所在的一个空间。
public static void main(String[] args) {
String s="a a a b c c d d d d e e e e e";
int max=0;
String maxs="";
List<String> three= new ArrayList<String>();
HashMap<String, Integer > top= new HashMap<String, Integer> ();
for(String i : s.split(" ")){
if(top.containsKey(i)) {
top.replace(i,top.get(i)+1);
}
else {
top.put(i,1);
}
}
for(int i=0; i<=2;i++) {
max=0;
maxs="";
for(String j: top.keySet()) { //string(word):all the values together
if(top.get(j)> max ) {
max=top.get(j);
maxs=j;
}
}
three.add(maxs);
top.remove(maxs);
}
}
}
}
最常用的词?
【问题讨论】:
-
还有另一个问题,如果我想删除所有标点符号,但不删除与单词相关的标点符号,例如不会 - 在这里我不想删除 ' 如果它不会 ' 那么我希望它被删除。 ?
-
答案好像被删除了,如果你把它加回来我可以检查它是否有效。
-
您在问 2 个问题:1) 如何去除单词中的标点符号,以及 2) 如何获取最常用的单词。请编辑您的问题以将其缩小为 1 个问题,并删除所有并非直接用于演示问题的代码。
标签: java regex string for-loop