Java 从字符串中解析二维数组

代码

row0表示二维数组里的数组个数,col0表示其里面数组的元素个数,left,right分别表示包含数组的左括号与右括号

public int[][] parseTwoDenArr(String arrStr, int row0, int col0, char left, char right) {
    
    
        int[][] arr = new int[row0][col0];

        // 表示数组的行
        int row = 0;
        // 遍历字符串
        for (int i = 1; i < arrStr.length() - 1; i++) {
    
    
            char tempC = arrStr.charAt(i);
            // 当字符串里的某个字符是left时,开始提取数组
            if (tempC == left) {
    
    
                // 表示数组的列
                int col = 0;
                while (arrStr.charAt(i) != right) {
    
    

                    if (arrStr.charAt(i) <= '9' && arrStr.charAt(i) >= '0') {
    
    
                        // 用于保存数组元素的值
                        String tempStr = "" + arrStr.charAt(i);
                        while (isNumber(arrStr.charAt(i + 1))) {
    
    
                            i++;
                            tempStr = tempStr + arrStr.charAt(i);
                        }
                        arr[row][col] = Integer.valueOf(tempStr);
                        col++;
                    }
                    i++;
                }
                row++;
            }
        }
        return arr;
    }

public boolean isNumber(char c) {
    
    
        return c >= '0' && c <= '9';
    }

示例

假如把字符串 [[4,5],[2,4]]解析成数组,则有:

String arrStr = "[[4,5],[2,4]]";
parseTwoDenArr(arrStr, n, 2, '[', ']');

猜你喜欢

转载自blog.csdn.net/weixin_43394832/article/details/113352407
今日推荐