2016-10-02 2 views
1

私は以下の形式の.txtファイルから行列を読み取る必要があります。2次元配列を含む.txtファイルから整数を読み取る方法、私はjava.util.InputMismatchExceptionを取得しています

problemMatrix = [[101, 2, 3, 4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [31, 32, 33, 34, 35, 36, 37, 38, 9, 40], [41, 42, 43, 44, 45, 46, 47, 28, 49, 50], [51, 52, 53, 54, 55, 56, 57, 58, 59, 60], [61, 62, 63, 64, 65, 66, 67, 68, 69, 70], [71, 72, 73, 7, 75, 76, 77, 78, 79, 80], [81, 82, 83, 84, 85, 86, 87, 88, 89, 90], [91, 92, 93, 94, 95, 96, 97, 98, 99, 100]] 

私はすでに行と列を計算するコードを書いています。私は[i] [j] indexに整数値を得るためにこのコードを書いています。

int [][] input= new int[rows][cols]; 
    matrix = new Scanner(new File("test.txt")); 
    matrix.useDelimiter("[ ,\r\n\t=]"); 
    try{  
     for(int i=0; i<rows; i++){ 
      for(int j = 0;j<cols;j++){ 
       input[i][j]=matrix.nextInt(); 
       System.out.print(input[i][j] + " "); 
      } 
      System.out.println(); 

      } 
    } 
    catch(InputMismatchException e){ 
     System.out.println(e); 
    } 

しかし、これは私に例外を与えますInputMismatchExceptionです。助言がありますか。私はスキャナの区切り文字を変更する方法を理解していません。おかげさまで

+0

テキストの内容を共有します。 txt – SarthAk

+0

あなたのtxtファイルに "problemMatrix ="は存在しますか?yあなたが提供した正規表現と一致しないので、例外です。このhttps://docs.oracle.com/javase/7/docs/api/java/util/InputMismatchException.html – Nishit

+0

はい、私が上で与えた行列はtest.txtから取られ、問題行列 –

答えて

0

あなたの正規表現に問題があると思います。正規表現[ ,\r\n\t=]は「\r\n\tまたは=のいずれかに一致を意味します。それは[または]と一致しないことに注意してください。

あなたは、角括弧の内側の両方[]を含めると、彼らは「ことを確認する必要がありますあなたのスキャナが空文字列を解析しようとすると、複数の区切り文字で問題が発生する可能性がありますので、正規表現で複数の文字を一致させたい場合があります。

+0

を含んでいます私はmatrix.useDelimiter( "[^ 0-9] +")を使用しました。正規表現の詳細については、 を参照してください。 助けてくれてありがとうjoe c。 –

関連する問題