2

我的数组输出看起来像123611(示例数字)。
我正在尝试使输出格式正确1,2,3,6,11

我对 Java 的了解不多,我不记得如何去做这件事。谢谢!!

这是我的代码:

int array3[] = { 1, 2, 3, 6, 11 };

for (int i = 0; i < array3.length; i++)
    System.out.print(array3[i]);
4

6 回答 6

2

您可以使用 Java 8 中提供的 Streams,注意这里我使用的是整数包装类 Integer,而不是原始类型int

Integer array3[] = { 1, 2, 3, 6, 11 };

System.out.println(Stream.of(array3)
 .collect(Collectors.mapping(String::valueOf, Collectors.joining(",")))
);

正如@Jelaby 提到的,最好使用map(),它先将每个Integer 转换为String,然后加入它

Integer array3[] = { 1, 2, 3, 6, 11 };

System.out.println(Stream.of(array3)
                         .map(String::valueOf)
                         .collect( Collectors.joining(",")));
于 2021-04-26T16:04:13.547 回答
1

这是一个简单的方法:

import java.util.Arrays;

public class SO {
  public static void main(String[] args){
    int[] a = {1,2,3,6,11};
    System.out.println(Arrays.toString(a));
  }
}

这输出:

[1, 2, 3, 6, 11]

或者你可以像这样去掉你不想要的字符:

System.out.println(Arrays.toString(a).replaceAll("\\[|\\]|\\s", ""));

哪个输出:

1,2,3,6,11
于 2013-10-25T01:20:29.653 回答
1

您也只需要打印它们 =)

for(int i=0; i< array3.length; i++) 
    System.out.print(array3[i] + (i <array3.length-1 ? ",":"") ); 

这将关闭尾随逗号,并在每个条目之间打印一个

于 2013-10-25T01:15:19.220 回答
0

,您可以使用此循环在除最后一个元素之外的每个元素之后打印

for (int i = 0; i < array3.length - 1; i++)
    System.out.print(array3[i] + ", ");

然后打印数组的最后一个元素而不,在它之后。

System.out.println(array3[array3.length - 1]);

或者只是使用

String arrStr = Arrays.toString(array3);//will produce "[1, 2, 3, 6, 11]"
System.out.println(arrStr);
//if you want to remove [...] brackets you can substring them with
System.out.println(arrStr.substring(1,arrStr.length()-1));
于 2013-10-25T01:20:37.050 回答
0

我敢打赌这就是你要找的东西:

Arrays.toString(array3);

输出是:

[1, 2, 3, 6, 11]

如果您不想要方括号,只需去掉它们。

于 2013-10-25T01:21:01.830 回答
0
int array3[] = { 1, 2, 3, 6, 11 };
String s ="";
for (int i = 0; i < array3.length-1; i++){
    s +=array3[i]+", ";
}
s +=array3[array3.length-1];
System.out.print(s);

本质上与 [] 相同Array.toString()但没有 [],并且在每次迭代中不使用if语句或三元(?:)来检查它是否是最后一个元素。一般来说,首先构建一个字符串是一种更好的做法,因为它更快并且你得到一个字符串处理,System.out它消失了。

于 2013-10-25T01:22:47.033 回答