java - 有没有办法将 CSV 之类的文本字符串复制到二维数组?

标签 java arrays

如何在 Java 中将文本字符串拆分并复制到二维数组? 字符串值为

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

我喜欢拆分和复制到二维字符串数组。

我的原始数据是 Java Servlet 上的二维字符串。我将该数组复制到 StringBuilder 中并返回到 Java 类。从这里开始,为了使用这些数据,我想将它带回 2D Array。

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"

最佳答案

在这里使用 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]]

关于java - 有没有办法将 CSV 之类的文本字符串复制到二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55947443/

相关文章:

java - 帮助制定为期 2 周的 Spring 和 OSGi 学习计划

java - 使用 java sdk 查找新创建的 AWS 实例的 ID 和 IP 地址?

c++ - 大数组指针删除

java - 使用mockito测试用例执行失败

java - 关于 Java 中通配符(泛型)的澄清

java - 从数组中获取值

使用 fscanf 从文件中的数据生成数组时出现 C 段错误

java - 数据结构帮助 - 理解思维过程

php - PHP内存实际如何工作

java - 枚举中的枚举