Java print array of integers joined by spaces
1 2 3 4 5 6
| int arr [] = new int[10];
for(int i =0;i <10;i ++){
arr [i ]=s. nextInt();
}
Arrays. sort(arr );
System. out. println(""+Arrays. toString(arr )); |
我的输入是:
98 7 6 5 4 32 14 5 1 7
我的输出是:
[1, 4, 5, 5, 6, 7, 7, 14, 32, 98]
但我只想将输出打印为已排序的数字,但不想使用[]和逗号打印,这将是所需的解决方案
- 读取后输入:System.out.println(Stream.of(arr).sorted( ).map( String::valueOf ).collect( Collectors.joining("" ) ));。
使用replaceall将[和]替换为空字符串:
1
| System. out. println("" + Arrays. toString(arr ). replaceAll("[\\[|\\]]", "")); |
一种解决方案是迭代数组并打印所需的字符串。另一种解决方案是如下使用子字符串:
1 2
| String result = Arrays. toString(arr );
System. out. println(""+result. substring(1, result. length()-1)); |
通过迭代也可以得到如下结果:
1 2 3
| for (int i =0;i <arr. length;i ++){
System. out. print(arr [i ] +"");
} |
或者使用regex,您可以按如下方式替换第一个和最后一个字符:
1
| System. out. println("" + Arrays. toString(arr ). replaceAll("^.|.$", "")); |
您还可以使用空安全的StringUtils(commons lang):
1
| StringUtils. substringBetween(Arrays. toString(arr ), "[", "]"); |
只需循环数组,并打印每个数字。
- ..这一个工作得很好..没有让我抓狂..但是为什么我们要打印索引值,因为我们必须打印索引的元素,你能解释一下吗?
- 在for-each循环中,i不是索引,而是要迭代的集合的元素。这与for (int i=0; i<10; i++)不同。