Java中将字符串转换为二维字符串数组 [英] Convert string into two dimensional string array in Java

查看:78
本文介绍了Java中将字符串转换为二维字符串数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I like to convert string for example :

String data = "1|apple,2|ball,3|cat";

变成这样的二维数组

{{1,apple},{2,ball},{3,cat}}

我已经尝试使用 split("") 方法,但仍然没有解决方案:(

I have tried using the split("") method but still no solution :(

谢谢..

推荐答案

    String data = "1|apple,2|ball,3|cat";
    String[] rows = data.split(",");

    String[][] matrix = new String[rows.length][]; 
    int r = 0;
    for (String row : rows) {
        matrix[r++] = row.split("\\|");
    }

    System.out.println(matrix[1][1]);
    // prints "ball"

    System.out.println(Arrays.deepToString(matrix));
    // prints "[[1, apple], [2, ball], [3, cat]]"

非常简单,除了 String.split 需要正则表达式,所以元字符 | 需要转义.

Pretty straightforward except that String.split takes regex, so metacharacter | needs escaping.

  • 正则表达式和转义特殊字符
  • Java Arrays.equals() 为两个返回 false维数组.
    • 对多维数组使用 Arrays.deepToStringArrays.deepEquals

    如果您知道将有多少行和列,您可以预先分配一个 String[][] 并使用一个 Scanner 如下:

    If you know how many rows and columns there will be, you can pre-allocate a String[][] and use a Scanner as follows:

        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]]"
    

    这篇关于Java中将字符串转换为二维字符串数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆