Pho*_*nix 6 java string converter multidimensional-array
我试着转换这个字符串
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));
Run Code Online (Sandbox Code Playgroud)
但是有这样的问题
线程"main"中的异常java.lang.ArrayIndexOutOfBoundsException:3 at test.main(test.java:94)
你能帮我找一个解决方案吗?
我认为这段代码会对你有所帮助.仔细阅读所有评论.
String s="[[4, 2, 2, 4], [3, 4, 5, 6], [6, 7, 8, 9], [3, 2, 1, 4]]";
s=s.replace("[","");//replacing all [ to ""
s=s.substring(0,s.length()-2);//ignoring last two ]]
String s1[]=s.split("],");//separating all by "],"
String my_matrics[][] = new String[s1.length][s1.length];//declaring two dimensional matrix for input
for(int i=0;i<s1.length;i++){
s1[i]=s1[i].trim();//ignoring all extra space if the string s1[i] has
String single_int[]=s1[i].split(", ");//separating integers by ", "
for(int j=0;j<single_int.length;j++){
my_matrics[i][j]=single_int[j];//adding single values
}
}
//printing result
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
System.out.print(my_matrics[i][j]+" ");
}
System.out.println("");
}
Run Code Online (Sandbox Code Playgroud)
[[4,2,2,4],[3,4,5,6],[6,7,8,9],[3,2,1,4]]
逻辑:1)替换所有[到""现在我有 - > 4,2,2,4 ], 3,4,5,6 ], 6,7,8,9 ], 3,2,1,4 ] ]
2)用"]分开所有,"现在我有 - >
A)4,2,2,4
B)3,4,5,6
c)6,7,8,9
d)3,2,1,4
3)用","分离ABCD,现在我有 - >
A)a)4 b)2 c)2 d)4
B)a)3 b)4 c)5 d)6
c)a)6 b)7 c)8 d)9
d)a)3 b)2 c)1 d)4
这只是不会在行尾添加逗号:
String s = "[[4, 2, 2, 4], [3, 4, 5, 6], [6, 7, 8, 9], [3, 2, 1, 4]]";
for (String l: s.split("\\]\\s*,\\s*\\[")) {
l = l.replaceAll("\\[", "").replaceAll("\\]", "");
System.out.println("{" + l + "}");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9272 次 |
| 最近记录: |