多维字符串[][]数组java

多维字符串[][]数组java,java,arrays,Java,Arrays,我有一个来自.split命令的数组,想要将其放入一个名为String[][]datatabvars的数组中,我不知道如何将datatabvars转换为二维数组并将数据放入其中 public String[] getList() { String file_name = "path"; String[] links = null; String[][] datatabvars = null; // this var int numberOfDatatabs = 0;

我有一个来自.split命令的数组,想要将其放入一个名为String[][]datatabvars的数组中,我不知道如何将datatabvars转换为二维数组并将数据放入其中

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;
}
public字符串[]getList(){
字符串文件\u name=“path”;
String[]links=null;
字符串[][]datatabvars=null;//此变量
int numberOfDatatabs=0;
试一试{
ReadFile file=新的ReadFile(文件名);
字符串[]aryLines=file.OpenFile();
int i;
对于(i=0;i
将这两行代码(我添加了注释)更新如下:(我假设您的其余代码正常工作)

String[]datatabvars=null;//这个变量
int numberOfDatatabs=0;
试一试{
ReadFile file=新的ReadFile(文件名);
字符串[]aryLines=file.OpenFile();
datatabvars=新字符串[aryLines.length][];//已初始化
int i;
对于(i=0;i
将这两行代码(我添加了注释)更新如下:(我假设您的其余代码正常工作)

String[]datatabvars=null;//此变量
int numberOfDatatabs=0;
试一试{
ReadFile file=新的ReadFile(文件名);
字符串[]aryLines=file.OpenFile();
datatabvars=新字符串[aryLines.length][];//已初始化
int i;
对于(i=0;i
通常,要避免像瘟疫一样使用数组-如果可能,请使用集合:。在这种情况下,
split()
返回一个
字符串[]
,因此使用它,但使用
List
存储多个
字符串[]

List<String[]> datatabvars = new ArrayList<String[]>();
...
String[] array = input.split(",");
datatabvars.add(array);
List datatabvars=new ArrayList();
...
字符串[]数组=input.split(“,”);
datatabvars.add(数组);

您会发现使用集合比使用数组容易得多。

通常,要避免像瘟疫一样使用数组-尽可能使用集合:。在这种情况下,
split()
返回一个
String[]
,所以使用它,但使用
List
存储多个
String[]

List<String[]> datatabvars = new ArrayList<String[]>();
...
String[] array = input.split(",");
datatabvars.add(array);
List datatabvars=new ArrayList();
...
字符串[]数组=input.split(“,”);
datatabvars.add(数组);

你会发现使用集合比使用数组容易得多。

我尝试过使用datatabvars[numberOfDatatabs]=aryLines[i]。split(“,”);//此拆分不应该根据需要创建它们,从0开始,然后尽可能高地指定?当您通过分配给datatabvars[i]丢弃初始化的length-10数组时,绝对不应该假定长度或初始化整个数组。相反,只需执行datatabvars=new String[aryLines.length][];仅初始化外部数组。其余代码正常。@user1816548更新了答案。如果这是downvote的原因,请删除。我尝试使用datatabvars[numberOfDatatabs]=aryLines[i]。拆分(,“”);//此拆分不应该根据需要创建它们,从0开始,然后尽可能高地指定?当您通过分配给datatabvars[i]丢弃初始化的length-10数组时,绝对不应该假定长度或初始化整个数组。相反,只需执行datatabvars=new String[aryLines.length][];仅初始化外部数组。其余代码正常。@user1816548更新了答案。如果这是downvote的原因,请删除。