如何摆脱Arrays.toString()返回的大括号和逗号?

时间:2013-06-02 17:59:04

标签: java arrays string tostring

考虑这段代码 -

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()引入的commans?我希望我的String就像这样 -

"01234"

5 个答案:

答案 0 :(得分:5)

使用StringBuilder

自行构建字符串
StringBuilder builder = new StringBuilder();
for (int value : arr) {
    builder.append(value);
}
String text = builder.toString();

基本上,如果您不想要Arrays.toString提供的格式,我首先要避免使用它。

答案 1 :(得分:3)

摆脱你不想要的角色的最好方法是不要把它们放在首位:

StringBuilder sb = new StringBuilder();
for (int n : arr) {
    sb.append(n);
}
String sarr = sb.toString();

但是,如果您必须在事后删除标点符号,则可以使用replaceAll

sarr = sarr.replaceAll("[^0-9]", "");

答案 2 :(得分:1)

你可以使用快速枚举和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

答案 3 :(得分:1)

您可以删除所有非数字字符:

String sarr = Arrays.toString(arr).toString().replaceAll("\\D+", "");

答案 4 :(得分:0)

我建议不要依赖于Arrays中的toString()表示,因为它主要用于更容易的调试,而不是用于任何生产用途。如果您希望以某种结构化方式获取信息,请自行格式化(例如,通过循环遍历数组并附加到StringBuilder)。