2

複数行のテキストにまたがるループを作成しようとしています。各行 (各文字列) を 2 つの要素に分割し、結果を 2 次元配列に設定します。現在、java.lang.ArrayIndexOutOfBoundsException: 0以下のコードでエラーが発生しており、split()行でトリガーされています。split()呼び出しの結果を取得し、それをプログラムの残りの部分で使用したいと考えています。また、2 番目の配列ボックスに整数を入れないと、コンパイル エラーが発生します。そこには引数が必要です。

String[][] arr = new String[numLines.size()][];

for(int i = 0 ; i < numLines.size(); i++) {
    arr[i][1].split("--", 2); 
    /* ... */
}
4

2 に答える 2

3

内部配列を自分で割り当てる必要はありませString.split()ん。例外が発生する理由は、角かっこを 2 回適用しているためです。つまり、arr[i]null 以外の配列 (および少なくとも 2 のサイズ) を期待しているため、代入できますが、そうではarr[i][1]ありません。

問題は、使用する必要さえないということですarr[i][whatever]。あなたがやりたいことは次のことだと思います:

ArrayList<String> lines;

/*
 * you add your lines to the 'lines' here somehow.
 */

String[][] arr = new String[lines.size()][];

for(int i = 0; i < lines.size(); i++) {
        arr[i] = lines.get(i).split("--", 2); 
        /* etc. */
}
于 2013-04-04T08:53:54.353 に答える