0

私はプログラミングの初心者であり、割り当てのために座標でスキャンする必要があります。入力は次のように与えられます。

5,4 4,5 8,7=6,3 3,2 9,6 4,3=7,6=9,8=5,5 7,8 6,5 6,4

そして、現在、スキャナーを機能させようとしています。2 つの while ループと 3 つの区切り文字 ("=" 、" "、",") を使用しました。これは、最後のループで得たものです。

    Scanner XYScanner = new Scanner(oneCoordinate);
    XYScanner.useDelimiter(",");
    int testX = XYScanner.nextInt();
    int testY = XYScanner.nextInt();

    out.printf("%d,%d\n",testX,testY);

そして、次のように出力されます。

5,4
4,5
8,7
6,3
3,2
9,6
4,3
7,6
9,8
5,5
7,8
6,5
Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at Pirate.Pirate.readXAndYValues(Pirate.java:28)
    at Pirate.Pirate.readRowOfCoordinate(Pirate.java:38)
    at Pirate.Pirate.readAllCoordinates(Pirate.java:57)
    at Pirate.Pirate.start(Pirate.java:64)
    at Pirate.Pirate.main(Pirate.java:68)

ご覧のとおり、最後の座標を除くすべての座標を読み取ります。誰かが私が何をしなければならないかを知っていて、その理由を教えてくれますか?

更新 2015 年 9 月 11 日 22:36:

返信@ 複数のメソッドですが、1つのメソッドに入れると次のようになります

input.useDelimiter("=");
        while(input.hasNext()){
            String oneRowOfCoordinates = input.next();
            readRowOfCoordinate(oneRowOfCoordinates);

        }
Scanner scanOneCoordinate = new Scanner(oneRowOfCoordinates);
        scanOneCoordinate.useDelimiter(" ");
        while(scanOneCoordinate.hasNext()){
            String oneCoordinate = scanOneCoordinate.next();
            readXAndYValues(oneCoordinate); // this is the method that is shown above
        }
4

0 に答える 0