【问题标题】:How to get rid of the braces and commas returned by Arrays.toString()?如何摆脱 Arrays.toString() 返回的大括号和逗号?
【发布时间】:2013-06-02 17:59:03
【问题描述】:
考虑一下这段代码-
import java.util.Arrays;
class Test {
public static void main(String args[]) {
int[] arr=new int[5];
for (int i=0; i<5; i++) {arr[i]=i;}
String sarr=Arrays.toString(arr);
System.out.println(sarr);
}
}
输出是-
[0, 1, 2, 3, 4]
我想知道天气有没有办法摆脱 toString() 引入的大括号和命令?我希望我的字符串是这样的-
"01234"
【问题讨论】:
标签:
java
arrays
string
tostring
【解决方案1】:
只需自己构建字符串,使用StringBuilder:
StringBuilder builder = new StringBuilder();
for (int value : arr) {
builder.append(value);
}
String text = builder.toString();
基本上,如果您不想要 Arrays.toString 为您提供的格式,我首先会避免使用它。
【解决方案2】:
摆脱你不想要的字符的最好方法是一开始就不把它们放进去:
StringBuilder sb = new StringBuilder();
for (int n : arr) {
sb.append(n);
}
String sarr = sb.toString();
但是,如果您事后必须删除标点符号,您可以使用replaceAll:
sarr = sarr.replaceAll("[^0-9]", "");
【解决方案3】:
您可以使用快速枚举和 StringBuilder - 可以使用 int[] 作为参数的静态方法。
例如:
int[] arr = new int[] {0,1,2,3,4};
StringBuilder sb = new StringBuilder(arr.length);
for (int i: arr) {
sb.append(i);
}
System.out.println(sb.toString());
输出:
01234
【解决方案4】:
您可以删除所有非数字字符:
String sarr = Arrays.toString(arr).toString().replaceAll("\\D+", "");
【解决方案5】:
我建议不要依赖数组中的 toString() 表示,因为它主要是为了更容易调试,而不是用于任何生产用途。如果您希望以某种结构化方式获取信息,请自行格式化(例如,通过循环遍历数组并附加到 StringBuilder)。