在Java中将字符串转换为二维字符串数组

在Java中将字符串转换为二维字符串数组,java,arrays,string,Java,Arrays,String,我喜欢转换字符串,例如: String data = "1|apple,2|ball,3|cat"; 变成这样的二维数组 {{1,apple},{2,ball},{3,cat}} 我尝试过使用split(“”)方法,但仍然没有解决方案:( 谢谢 凯 非常简单,只是需要正则表达式,所以元字符需要转义 另见 对多维数组使用Arrays.deepToString和Arrays.deepEquals 可供替代的 如果您知道将有多少行和列,您可以预先分配一个字符串[]【】,并使用扫描仪,

我喜欢转换字符串,例如:

String data = "1|apple,2|ball,3|cat";
变成这样的二维数组

{{1,apple},{2,ball},{3,cat}}
我尝试过使用
split(“”)
方法,但仍然没有解决方案:(

谢谢

非常简单,只是需要正则表达式,所以元字符
需要转义

另见
    • 对多维数组使用
      Arrays.deepToString
      Arrays.deepEquals

可供替代的 如果您知道将有多少行和列,您可以预先分配一个
字符串[]【】
,并使用
扫描仪
,如下所示:

    Scanner sc = new Scanner(data).useDelimiter("[,|]");
    final int M = 3;
    final int N = 2;
    String[][] matrix = new String[M][N];
    for (int r = 0; r < M; r++) {
        for (int c = 0; c < N; c++) {
            matrix[r][c] = sc.next();
        }
    }
    System.out.println(Arrays.deepToString(matrix));
    // prints "[[1, apple], [2, ball], [3, cat]]"
Scanner sc=新的扫描仪(数据)。使用分隔符(“[,|]”);
最终整数M=3;
最终整数N=2;
字符串[][]矩阵=新字符串[M][N];
对于(int r=0;r
    Scanner sc = new Scanner(data).useDelimiter("[,|]");
    final int M = 3;
    final int N = 2;
    String[][] matrix = new String[M][N];
    for (int r = 0; r < M; r++) {
        for (int c = 0; c < N; c++) {
            matrix[r][c] = sc.next();
        }
    }
    System.out.println(Arrays.deepToString(matrix));
    // prints "[[1, apple], [2, ball], [3, cat]]"