2016-07-08 8 views
0

私は配列から値を取るプログラムを持っています。テキストファイルからグラフの値を読み取っていますか?

int graph[][] = new int[][] {{0, 2, 0, 6, 0}, 
           {2, 0, 3, 8, 5}, 
           {0, 3, 0, 0, 7}, 
           {6, 8, 0, 0, 9}, 
           {0, 5, 7, 9, 0}, 
           }; 

インライン入力をテキストファイル入力に変更しようとしましたが、タイプミスマッチエラーが発生しました。

Scanner inFile = new Scanner(new File("split_this.txt")); 
String s = inFile.nextLine(); 
int numberOfVertices = Integer.parseInt(s); 
while (inFile.hasNext()) { 
    s = inFile.nextLine(); 
    String[] triplet = s.split("[\\|]"); 
    String[][] tokens = new String[ triplet.length ][]; 
    for (int i = 0; i < triplet.length; i++){ 
     tokens[i] = triplet[i].split("[,]"); 
    } 
    for (int z = 0; z < tokens.length; z++){ 
     for (int i = 0; i < tokens[z].length; i++){ 
      int graph[][] = tokens[z][i]; 
     } 
    } 
} 

私を助けてください。

+0

私は、またはint []配列をグラフ化していますが、文字列valトークンの配列はグラフの整数配列ですか? – DarkV1

+0

例 'split_this.txt'ファイルを表示してください –

+0

これはその" split_this.txt "ファイルのコンテンツです {0,2,0,6,0}、 {2、0、3、8、5}、 {0、3、0、0、7}、 {6,8,0,0,9}、 {0、5,7,9,0}、 –

答えて

0

ファイル形式上のコントロールを持っているならば、私は競争の問題の多くで使用されているこのいずれかに従うことをお勧めします。この後、あなたのケースのための

row col 
val11 val12 val13 ... 
val21 val22 val23 ... 
val31 val32 val33 ... 
... 

5 5 
0 2 0 6 0 
2 0 3 8 5 
0 3 0 0 7 
6 8 0 0 9 
0 5 7 9 0 

スキャナを使用して入力を読み取ってください:

Scanner scan - new Scanner(file); 
int row = scan.nextInt(); 
int col = scan.nextInt(); 
int[][] graph = new int[row][col]; 
for(int r=0; r<row; r++) { 
    for(int c=0; c<col; c++) { 
     graph[r][c] = scan.nextInt(); 

    } 
} 
+0

コンパイル時にNULLポインタ例外が発生する。 スキャナのコマンドは次のとおりです。「スキャナのスキャン=新しいスキャナ( "in.txt"); –

+0

は、スタックトレースを投稿してください@CMPSスレッドで – CMPS

+0

「例外 "メイン" java.util.InputMismatchException java.util.Scanner.throwForで \t(Scanner.java:864)java.util.Scanner.nextで \t(スキャナ.java:1485)java.util.Scanner.nextInt(Scanner.java:2117)で \t java.util.Scanner.nextInt(Scanner.java:2076)で \t MST.main(MST.javaで \t。 100) ' –

関連する問題