0

.splitコマンドからの配列があり、それをString [] [] datatabvarsという配列に入れたいのですが、datatabvarsを2次元配列に変換してデータを入れる方法がわかりません。

public String[] getList() {
    String file_name = "path";
    String[] links = null;
    String[][] datatabvars = null; // this var
    int numberOfDatatabs = 0;
    try {
        ReadFile file = new ReadFile(file_name); 
        String[] aryLines = file.OpenFile();

            int i;
        for(i=0; i < aryLines.length; i++) { //aryLines.length
            if (aryLines[i].substring(0, 7).equals("datatab")) {
                aryLines[i] = aryLines[i].replace("datatab["+Integer.toString(numberOfDatatabs)+"] = new Array(", "");
                aryLines[i] = aryLines[i].replace(");", "");
                datatabvars = aryLines[i].split(","); // this split array
                numberOfDatatabs++;
            }
        }
        System.out.println(datatabvars[0]);
    }catch (IOException e) {
        System.out.println( e.getMessage() );
    }
    return links;
}
4

2 に答える 2

3

以下のように2行を更新します(コメントを追加しました):(残りのコードは機能していると想定しています)

String[][] datatabvars = null; // this var
int numberOfDatatabs = 0;
try {
    ReadFile file = new ReadFile(file_name); 
    String[] aryLines = file.OpenFile();
    datatabvars = new String[aryLines.length][]; // INITIALIZED

    int i;
    for(i=0; i < aryLines.length; i++) { //aryLines.length
        if (aryLines[i].substring(0, 7).equals("datatab")) {
            aryLines[i] = aryLines[i].
                        replace("datatab["+Integer.toString(numberOfDatatabs)+"] = 
                                               new Array(", "");
            aryLines[i] = aryLines[i].replace(");", "");
            datatabvars[i] = aryLines[i].split(","); // this split array: ASSIGNED
            numberOfDatatabs++;
        }
    }
    System.out.println(datatabvars[0]);
于 2012-12-07T23:26:06.683 に答える
1

一般に、配列は疫病のように避けるべきです - 可能であればコレクションを使用してください:. この場合、は をsplit()返すString[]ので、それを使用しますが、List<String[]>複数の を格納するために使用しますString[]

List<String[]> datatabvars = new ArrayList<String[]>();
...
String[] array = input.split(",");
datatabvars.add(array);

配列よりもコレクションを使用すると、生活がはるかに簡単になります。

于 2012-12-07T23:43:32.307 に答える