1

1次元配列(String array[] = str.split(blah))で動作させることはできますが、2D配列では問題が発生します。2D配列の各行を通過し、必要なものを割り当てるループを使用してstr.split(\t)います。

例えば:

John\tSmith\t23
James\tJones\t21

私の2D配列は次のようになります{{John, Smith, 23}, {James, Jones, 21}} 。Javaを始めたばかりなので、2D配列の構文の一部についてはよくわかりません。

編集:要求されたいくつかのコード

String str;
int row = 0;
String array[][];
while ((str = br.readLine()) != null)   {
    array[row] = str.split("\t");
    System.out.println(array[row][0]);
    row++;
}
4

3 に答える 3

4

次のように配列を初期化する必要があります。

int rowCount = ...;
String array[][] = new String[rowCount][];

または、行数がわからない場合は、代わりにArrayListを使用できます。

List<String[]> list = new ArrayList<String[]>();
String str;
while((str = br.readLine()) != null)
{
    String[] array = str.split("\t");
    list.add(array);
}
String[][] array2D = new String[list.size()][];
list.toArray(array2D);
于 2012-09-11T15:57:19.580 に答える
1

使用する必要がありますstr.split("\\\\t");splitメソッドは正規表現を受け入れます。
詳細については、この投稿を確認してください

于 2012-09-11T16:01:24.553 に答える
1

使用String array[][]する前に初期化する必要があります。

可能であれば、コードを移動してListsを使用して機能させます。

List<List<String>> array = new ArrayList<List<String>>();
while ((str = br.readLine()) != null)   {
    array.add(Arrays.asList(str.split("\t")));
}

を使用してはならない場合はList、配列を初期化してください

final int SIZE = ...; //some value that would be the max size of the array of arrays
String array[][] = new String[SIZE][];
于 2012-09-11T16:02:22.137 に答える