如何创建数组的String

时间:2015-02-03 15:58:24

标签: java arrays string int

我试图创建一个数组的字符串{1,2,3,4,5,6,7},但是当我运行它时,我似乎无法得到正确的答案。 / p>

int [] arr = {1, 2, 3, 4, 5, 6, 7};
String s = " ";

for(int i = 0; i < arr.length; i++){
  s = (arr[i] + ", ");
}

System.out.println(s);

当我实际上跳到1,2,3,4,5,6,7时,我得到的答案是7

有人可以向我解释为什么下面这段代码给出了正确的答案,但是当我使用字符串时,它并不是我应该如何纠正上面的代码。

int [] arr = {1, 2, 3, 4, 5, 6, 7};

for(int i = 0; i < arr.length; i++){
  System.out.print(arr[i] + ", ");
}

7 个答案:

答案 0 :(得分:3)

您在每次迭代s重新初始化s = arr[i] + " ",因此当循环完成时,s将是数组中的最后一个值。

要将所有值添加到s,您必须使用+=代替=

例如s += String.valueOf(arr[i]) + " "

答案 1 :(得分:1)

您需要追加到您的字符串中。也就是说,您需要在末尾添加另一个数字(使用+=),而不是仅为每个数字重新分配字符串(使用=)。

for (int i = 0; i < arr.length; ++i){
    s += arr[i] + " ";
}

或者更简洁:

for (int n : arr) {
    s += n + " ";
}

或者,如果您不想被担心表现的人告知,请使用StringBuilder

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

或者只使用Arrays.toString(arr)来完成整个事情。

答案 2 :(得分:0)

将您的代码更改为:

for(int i = 0; i < arr.length; i++){
  s += (arr[i] + " ");   <<---- you we're missing the '+' 
}

答案 3 :(得分:0)

如果您使用s = (arr[i] + " ");,则会覆盖您的字符串。

更好地使用s += (arr[i] + " ");s = s.concat(arr[i] + " ");

答案 4 :(得分:0)

第一个代码的问题是对象s在for循环的每次迭代中都被覆盖...这就是为什么它打印最后一个覆盖值为7的原因 要打印您可以使用的所有值 s = s +(arr [i] +&#34;,&#34;);

答案 5 :(得分:0)

如果您希望每次从阵列中获取值时都打印出值,则应将System.out.println(s); 放在for循环的内,而不是for循环。如果您希望将它们全部打印在一行中,那么您应该使用s.concat(arr[i] + ", ");。这会将数组中的值添加到字符串的末尾。

答案 6 :(得分:0)

基本上,对于您正在寻找的内容,只需将s = (arr[i] + ", ");更改为s = s.concat(arr[i] + ", ");即可。这会给你一个列表,打印出来。为了使它看起来更好,你可以获取字符串的字符数,并使用子字符串删除最后一个逗号。

我希望这会有所帮助。