期待 EOF,发现 'for' - 正在处理

Expecting EOF, found 'for' - 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);
}

在此先感谢您的帮助!!

我进行了编辑以修复您的缩进,您似乎在最后一行多了一个大括号。如果您从函数内部复制了 for 循环,并且不小心复制了函数的右大括号,请向我们展示函数的其余部分。

top = Multisets.copyHighestCountFirst(myMultiset);
}

这里的括号好像不对

您打算在这里结束您的 "setup" 方法吗? 如果是这样,你就不能在方法中使用 sysout 和 for 之类的东西,也不能在末尾有一个额外的大括号。

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

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()(假设这是您想要执行的操作)。