Java 从字符串中删除[]

Java 从字符串中删除[],java,stringbuilder,Java,Stringbuilder,如何从我的输出中删除[] String omega_str[][] ; StringBuilder sb=new StringBuilder(); for (String[] row:omega_str) sb.append(Arrays.toString(row)); String text=sb.toString(); System.out.println("Text : "+text); 我的输出是:

如何从我的输出中删除[]

String omega_str[][]  ; 
StringBuilder sb=new StringBuilder();
         for (String[] row:omega_str)
                 sb.append(Arrays.toString(row));

    String text=sb.toString();  
        System.out.println("Text : "+text);
我的输出是:

[-0.06409677515180673][0.12516724483856012][-0.06188844693840026][0.1542289929525214][-0.06603595481351604][0.07823062287735344][0.10161817634744892]
预期产量

-0.06409677515180673 0.12516724483856012 -0.06188844693840026 0.1542289929525214 -0.06603595481351604 0.07823062287735344 0.10161817634744892 
如何做到这一点?

只需使用一个子字符串:

改变

String text=sb.toString();  


你不应该先生产一些东西,然后再移除它。[…]是Arrays.toString的结果。最好遍历子数组并将值打印到字符串生成器

顺便说一句,看起来子数组中只有一个值。这就提出了一个问题,如果你真的需要一个二维数组。 无论如何,如果你知道只有一个值,你甚至不需要一个循环,只要

sb.append(' ');
sb.append(row[0]);
在将其添加到StringBuilder之前跳过[]

String str= Arrays.toString(row);
str= str.substring(1,str.length()-1); 
sb.append(str);

对数组调用.toString总是会生成这样的输出,因此我建议您在对数组调用.toString之后,用空字符串替换[],如下所示:

line.replace("[", "").replace("]", "");
但是,由于性能问题,它仅适用于短字符串。

尝试使用转义字符替换所有字符串:

String str = "[-0.06409677515180673][0.12516724483856012][-0.06188844693840026][0.1542289929525214][-0.06603595481351604][0.07823062287735344][0.10161817634744892]";
str = str.replaceAll("\\[", "").replaceAll("\\]","");
将regex与replaceAll一起使用

输出:
-0.06409677515180673 0.12516724483856012-0.06188844693840026 0.1542289929525214-0.06603595481351604 0.07823062287735344 0.10161817634744892

这将为您带来好处

for (String[] row:omega_str) {
  for(String val : row) {
      sb.append(val + " ");
  }
}

String text=sb.toString();  
System.out.println("Text : "+text);
正如@Ingo所建议的,不要产生你想要删除的东西,我相信使用regex来删除我不喜欢的toString方法并不是解决问题的好方法。 我将在您的类中创建一个名为print的方法。。。。像这样:

public static void printArray(String[][] array) {
        System.out.print("Text :");
        for (String[] row : array)
            for (String element : row)
                System.out.print(" " + element);
    }
简单地说:

printArray(omega_str);
使用此解决方案,您不必使用StringBuilder实例


再见

如果您的行始终包含1个元素,sb.appendrow[0]。请在追加到sbi之前删除“[”,“]”它们;行。
for (String[] row:omega_str) {
  for(String val : row) {
      sb.append(val + " ");
  }
}

String text=sb.toString();  
System.out.println("Text : "+text);
public static void printArray(String[][] array) {
        System.out.print("Text :");
        for (String[] row : array)
            for (String element : row)
                System.out.print(" " + element);
    }
printArray(omega_str);