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代わりに、st.nextToken()の結果をforループの前の変数に割り当ててから、その変数を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 に答える