0

我有一个 .txt 文件,每行都有整数,例如

1
4
5
6

我想计算文件中数组中值的出现次数。

我的代码摘录是这样的

String s = null;
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
while ((s = br.readLine()) !=null) {
    StringTokenizer st = new StringTokenizer(s);
    while (st.hasMoreTokens()) {
        for (int i = 0; i < array.length; i++) {
            if (st.nextToken().equals(array[i])) {
                count++;
            }  

错误消息是

java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken(Unknown Source)

该文件位于同一目录中。

有人可以帮帮我吗?谢谢

4

1 回答 1

2

您的问题是您试图为循环的每次迭代提取一个新标记for- 相反,您需要在 for 循环之前将 st.nextToken() 的结果分配给一个变量,然后在if语句中使用该变量.

String s = null;
String token = null;
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
while ((s = br.readLine()) !=null) {
    StringTokenizer st = new StringTokenizer(s);
    while (st.hasMoreTokens()) {
        token = st.nextToken();
        for (int i = 0; i < array.length; i++) {
            if (token.equals(array[i])) {
                count++;
            }
        }
    }
}
于 2009-09-06T23:19:16.250 回答