代码
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, '[', ']');