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