0

我下面的代码从一个 txt 文件中获取所有单词,并在它旁边打印出数字 1(计数)。我的程序的目的是像它所做的那样接收所有单词,但如果它是重复的,我不希望它打印我希望它找到匹配的单词并将其添加到计数中。

Scanner in = new Scanner(new File(filename));
int i = 0;
int n = 1;
String w = "";
String txt = "";

while ((in.hasNext())) {
    w = in.next() ;
    wrd[i] = w;
    num[i] = n;
    i++;
    txt = wrd[i];

}
4

1 回答 1

4

您想使用 Map :

Map<String, Integer> map = new HashMap<String, Integer>();
...

while (in.hasNext()) {
    String w = in.next();

    if (map.containsKey(w)) {  // Already in the map
        map.put(w, map.get(w) + 1);  // Increment the counter
    } else {  // First time w is found, initialize the counter to 1
        map.put(w, 1);
    }
}

基本上,该映射将一个键(这里是您要计算的单词)与一个值(当前单词的出现次数)相关联。containsKey检查某个值是否与给定键关联,get检索该值(如果有)并put设置一个新值。

于 2013-03-07T16:10:51.193 回答