0

考虑这个代码 -

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"
4

5 回答 5

5

只需自己构建字符串,使用StringBuilder

StringBuilder builder = new StringBuilder();
for (int value : arr) {
    builder.append(value);
}
String text = builder.toString();

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

于 2013-06-02T18:01:28.520 回答
3

摆脱您不想要的字符的最佳方法是首先不要将它们放入:

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

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

sarr = sarr.replaceAll("[^0-9]", "");
于 2013-06-02T18:01:04.260 回答
1

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

String sarr = Arrays.toString(arr).toString().replaceAll("\\D+", "");
于 2013-06-02T18:09:09.463 回答
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
于 2013-06-02T18:01:51.003 回答
0

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

于 2013-06-02T18:03:07.897 回答