如何在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"
答案 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]]