考虑这段代码 -
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"
答案 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)。