将文件中的值与数组进行比较

时间:2009-09-06 23:14:52

标签: java arrays file tokenize

我有一个.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)

该文件位于同一目录中。

有人可以帮我一把吗? 谢谢

1 个答案:

答案 0 :(得分: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++;
            }
        }
    }
}