2012-04-14 15 views
0
int n = sc.nextInt(); 
char[][] original = new char[n][n]; 
char [][] result = new char[n][n]; 
String line; 

for (int i = 0; i < n; i++) { 
    line = sc.nextLine(); 
    System.out.println(line); 
    for (int u = 0; u < n; u++) { 
    original[i][u] = line.charAt(u); 
    } 
} 

for (int i = 0; i < n; i++) { 
    line = sc.nextLine(); 
    for (int u = 0; u < n; u++) { 
    result[i][u] = line.charAt(u); 
    } 
} 

によるファイルの行を読み取ります。Valaのは、私は、このようなファイルを持って行

私は文字の配列の二つの配列にそれらを読んしようとしていますが、私はこのエラーを取得:範囲外の文字列インデックス:javaので0 スレッド「メイン」java.lang.StringIndexOutOfBoundsExceptionで

例外.lang.String.charAt transform.mainで(String.java:695) (transform.java:25)

ライン25はこれです:

original[i][u] = line.charAt(u); 

私はちょうどそれを得ることはありません、私は私はすべてをうまくやっていると思う。何か案は?ありがとうございました!

+0

エラーの前に最後に印刷される行の内容は何ですか? –

+0

なぜJavaに関するタイトルの[Vala](http://en.wikipedia.org/wiki/Vala_(programming_language))のタイトルに言及していますか? – Jesper

答えて

2

あなたのscがスキャナインスタンスであるとしますか?メソッドnextInt()はファイルから次の番号を読み込みますが、ではなく、は次の改行を処理します。したがって、最初にnextLine()を呼び出すと、空の文字列(つまり、まだ処理されていない改行までのすべての文字)が返されます。 println(...)コールで空行が表示されることがわかります。この動作を修正するには、ループの前にnewLine()へのコールを挿入することができます。

関連する問題