2011-01-05 11 views
0

このコードで何が問題なのか分かりません。私はtxtファイルを読むにはJavaの配列にファイル。このコードで何が問題になっていますか?

11,10 
2,20 

をjavaの配列[] []にします。

私のコードがある

import java.util.Arrays; 
class ArrayMatrix{ 
    public static void main (String[] args) { 
    int rows = 2; 
    int cols = 2; 
    FileInput in = new FileInput("test.txt"); 
    int[][] circle = new int[rows][cols]; 
    int i = 0; 
    int j = 0; 
    String [] line; 
    for(i = 0; i<rows; i++) { 
     line = in.readString().split(","); 
     for(j = 0; j<cols; j++) { 
      circle[i][j] = Integer.parseInt(line[j]); 
      System.out.println(circle[i][j]); 
     } 
    } 
} 
} 

出力は

11 
10 
2 
20 

あなたは私がなぜ下さい理解する助けてもらえますか?

私はあなたが各行の値を分離昏睡を持っていないときに出力

11 10 
2 20 
+0

でのショーとして、あなたは(緑に回し、次の答えにチェックマークをクリックして)最適なものを受け入れるべき – Kurru

答えて

0

は、なぜあなたは、昏睡を使用して文字列を分割しようとしている?したいですか

line = in.readString().split(","); //this is expecting coma separated values on each line 

また、System.out.println()は新しい行を最後に置きます。だから彼らは別々の行で終わるのです。代わりにSystem.out.print(circle [i] [j])を使用してください。

0

println()を使用すると、各要素が新しい行に書き込まれます。試してみてください:

for(j = 0; j<cols; j++) { 
     circle[i][j] = Integer.parseInt(line[j]); 
     System.out.print(circle[i][j] + " "); 
    } 
    System.out.println(); 
+0

ありがとうございます。それは今働いている。 – user560084

2

あなたはただ一つだけの行に出力します途中でのSystem.out.println(円[I] [J])コマンドを使用しているため、出力はこのようなものですね。 System.out.printコマンドを使用すると、正しく印刷できます。あなたはあなたの答えに満足している場合は、次の変更されたコードサンプル

import java.util.Arrays; 
class ArrayMatrix{ 
    public static void main (String[] args) { 
    int rows = 2; 
    int cols = 2; 
    FileInput in = new FileInput("test.txt"); 
    int[][] circle = new int[rows][cols]; 
    int i = 0; 
    int j = 0; 
    String [] line; 
    for(i = 0; i<rows; i++) { 
     line = in.readString().split(","); 
     for(j = 0; j<cols; j++) { 
      circle[i][j] = Integer.parseInt(line[j]); 
      System.out.print(circle[i][j] + " "); 
     } 
     System.out.println(); 
    } 
} 
} 
+0

ありがとうございました。あなたのコードは正常に動作します。 – user560084

関連する問題