期待EOF,发现'为' - 处理

时间:2015-03-27 01:47:02

标签: java sorting processing

这是我的第一个问题,为我在寻求帮助时所犯的任何错误道歉!

我正在尝试从Processing中的文本文件中对5个最重复的单词进行排序,我对这个我不断得到的错误感到困惑。我是Java的新手,在搜索互联网之后,我所做的任何改变似乎都没有帮助。我需要做些什么才能修改以解决问题?

以下是有问题的代码 -

import java.util.Iterator;

import com.google.common.collect.ImmutableMultiset;
import com.google.common.collect.Multiset;
import com.google.common.collect.Multisets;

void setup() {
    size(800, 480);
    smooth();

    String[] data = loadStrings("data/data.txt"); 

    ImmutableMultiset<String> myMultiset = ImmutableMultiset.copyOf(data);
    top = Multisets.copyHighestCountFirst(myMultiset);
}

Iterator it = top.entrySet().iterator();

for (int i = 0; (i < 5) && it.hasNext(); i++) {
    Multiset.Entry entry = (Multiset.Entry) it.next();

    String word = (String) entry.getElement();
    int count = entry.getCount();

    System.out.println(word + " -> " + count);
}

请提前感谢您的帮助!!

2 个答案:

答案 0 :(得分:1)

我编辑修复你的缩进,你似乎在最后一行有一个额外的括号。如果您从函数内部复制for循环,并意外复制了函数的右括号,请向我们展示函数的其余部分。

答案 1 :(得分:0)

top = Multisets.copyHighestCountFirst(myMultiset);
}

看起来这个支撑不合适。

你打算结束你的设置&#34;方法在这? 如果是这样的话,你就不能拥有像sysout这样的东西,而且不会在方法中,也不会在最后有一个额外的支撑。

尝试将其余代码放入如下方法中:

void iteratorMethod(){
    Iterator it = top.entrySet().iterator();

    for (int i = 0; (i < 5) && it.hasNext(); i++) {
        Multiset.Entry entry = (Multiset.Entry) it.next();

        String word = (String) entry.getElement();
        int count = entry.getCount();

        System.out.println(word + " -> " + count);
    }
}

请注意,您必须在设置方法的最后一行调用iteratorMethod()(假设您要执行的操作)。