我试图将这个字符串
s=[[4, 2, 2, 4], [3, 4, 5, 6], [6, 7, 8, 9], [3, 2, 1, 4]]
转换成像这样的二维数组
{4, 2, 2, 4},
{3, 4, 5, 6},
{6, 7, 8,9},
{3, 2, 1, 4}
使用以下代码实现:
int e=s.replaceAll("\\[", "").replaceAll(" ","").replaceAll("],","]").length();
String[] rows1 = s.replaceAll("\\[", "").replaceAll(" ","").replaceAll("],","]").substring(0, e-2).split("]");
String[][] matrix1 = new String[4][4];
int r1 = 0;
for (String row1 : rows1) {
matrix[r1++] = row1.split(",");
}
System.out.println(Arrays.deepToString(matrix1));
但是出现了这样的问题:
在主线程中出现异常:"main" java.lang.ArrayIndexOutOfBoundsException: 3, 在 test.java 的第94行。
你能帮我找到解决办法吗?
matrix1
而不是matrix[r1++] = row1.split(",");
。尝试使用能够在一定程度上解释变量作用的变量名。 - ug_matrix
。我刚刚测试了您的代码,并通过将'matrix'更改为'matrix1'使其正常工作。 - Daniel Nugent