0

こんにちは私は数字のセットを読み取ろうとしているテキストファイルを持っています、このファイルは次のようになります:

st:ATTR1 20121011        0        0      127      122      -17

スペースを区切り文字として使用してスキャナーを使用し、最初の文字列を読み取り、残りをintとして読み取ろうとしています。しかし、実行しようとすると、次のエラーが発生します。

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at prog8.prog8.main(prog8.java:22)

これがなぜであるかはわかりません。私が知る限り、これにより、他の文字を気にせずに次のintを読み取ることができるはずだからです。

私のコードは次のとおりです。

package prog8;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class prog8 {

public static void main(String[] args) {
    File file = new File("files/Weather.txt");
    int date = 0;
    int prcp = 0;
    int snow = 0;
    int snwd = 0;
    int tmax = 0;
    int tmin = 0;

    try {
        Scanner reader = new Scanner(file).useDelimiter(" ");
        while (reader.hasNextLine()) {
            String station = reader.next();
            date = reader.nextInt();
            prcp = reader.nextInt();
            snow = reader.nextInt();
            snwd = reader.nextInt();
            tmax = reader.nextInt();
            tmin = reader.nextInt();
            System.out.printf("station: %s, date: %d, prcp: %d, snow: %d, snwd: %d, tmax: %d, tmin: %d", station, date, prcp, snow, snwd, tmax, tmin);

        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}
}

なぜこれが起こるのか誰か教えてもらえますか?

4

1 に答える 1

3

区切り文字を単一のスペースに設定した場合、複数のスペースを使用することはできません。

を削除する.useDelimiter(" ");と、プログラムは正常に機能します

于 2012-11-19T17:58:12.393 に答える