2016-10-30 6 views
-1

私は、ファイルからデータを読み取るしようとしていると私はここで例外「メイン」java.util.InputMismatchException

上記の入力不一致例外を取得していますが、データの1行は、ファイルから

です

ウィリー、11は、ここで

9は、私はあなたが与えたサンプルを使用してコードを実行した

fileScanner.useDelimiter(",") ; 
String firstPetName = fileScanner.next() ; 
int firstPetAge = fileScanner.nextInt() ; 
fileScanner.useDelimiter("[,\\s]") ; 
int firstPetWeight = fileScanner.nextInt() ; 
fileScanner.nextLine(); 
+1

入力内容は何ですか? – Gacci

+1

'fileScanner.nextInt()'を使用すると、整数が必要です。入力が整数でない場合、この例外がスローされます。 – Paulo

+0

'、'で分割しているので、最初の数字は '' 11 "'になります。これは有効な数字ではありません。 – Tom

答えて

0

ファイルから行を読み込むコードの一部であり、これは問題が何であるかです:

次の要素を取得すると、空白文字列" 11"が返されます。最初にトリムしてIntegerに戻す必要があります。ここで

は、私が走ったコードは次のとおりです。

public static void main(String[] args) throws IOException { 
     Scanner s = new Scanner("Wille, 11, 9"); 
     s.useDelimiter(","); 
     System.out.println(s.next()); 
     System.out.println(Integer.valueOf(s.next().trim()));//<-- Look Here 
    } 

あなたのコードに変更する必要がありますこれは何です:あなたはあなたのを持っていたら

int firstPetAge = Integer.valueOf(fileScanner.next().trim()); 

fileScanner.next().trim()は、スペースを削除し、のみ11を返します。数値を整数に変換するInteger.valueOf(s.next().trim())

問題があれば教えてください。

関連する問題