我尝试转换此字符串



通过使用此代码

 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));

但是有这样的问题



您能帮我找到解决方案吗?

最佳答案

我认为这段代码将为您提供帮助。仔细阅读所有评论。

     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("");
     }

[[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)用“,”分隔A B C D现在我有->

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

10-02 01:37
查看更多