有没有办法将文本字符串等CSV复制到2D数组?

时间:2019-05-02 07:20:17

标签: java arrays

如何在Java中将文本字符串拆分并复制到2D数组? 字符串值是

String input=`[1,Mumbai][2,Delhi][3,Chennai]` 

我喜欢拆分并复制到2D String数组。

我的原始数据在Java Servlet上的2D String中。我将该数组复制到StringBuilder中并返回到Java类。从这里开始,为了使用此数据,我想将其带回2D阵列。

StringBuilder mbuscat = new StringBuilder();
String[][] abuscat = new String[11][2];
String lineSeparator = System.lineSeparator();
int b=0;
while(rset.next()) {         
                abuscat[b][0] = rset.getString(1);
                abuscat[b][1] = rset.getString(2);
                b ++;
            }
for (String[] row : abuscat) {
    mbuscat.append(Arrays.toString(row))
      .append(lineSeparator);
}

我希望输出类似

 arry[0][0]="1"
 arry[0][1]="mumbai"
 arry[1][0]="2"
 arry[1][1]="delhi"
 arry[2][0]="3"
 arry[2][1]="chennai"

1 个答案:

答案 0 :(得分:4)

在这里可以使用String#split

String input = "[1,Mumbai][2,Delhi][3,Chennai]";
String[][] abuscat;
String[] parts = input.split("(?<=\\])(?=\\[)");
abuscat = new String[parts.length][2];

for (int r=0; r < parts.length; ++r) {
    abuscat[r][0] = parts[r].replaceAll("[\\[\\]]", "").split(",")[0];
    abuscat[r][1] = parts[r].replaceAll("[\\[\\]]", "").split(",")[1];
}

System.out.println(Arrays.deepToString(abuscat));

输出:

[[1, Mumbai], [2, Delhi], [3, Chennai]]