我需要显示用逗号分隔的数组元素。这是我到目前为止的代码:
int[] arr = { 10, 20, 30 };
int[] newArray = Arrays.copyOf(arr, arr.length + 1);
newArray[newArray.length - 1] = 40;
System.out.print("[ ");
for (int i = 0; i < newArray.length; i++) {
System.out.print(", " + newArray[i]);
if (newArray.length - 1 > newArray[i])
System.out.print(", ");
else
System.out.print(" ");
}
System.out.println("]");
我的输出是这样的:[ , 10 , 20 , 30 , 40 ]
我需要删除第一个索引之前的逗号,也不要在最后一个索引之后显示逗号。
答案 0 :(得分:5)
int[] arr = { 10, 20, 30 };
System.out.println(Arrays.toString(arr));
它执行与尝试使用算法相同的操作。
Output:
[10, 20, 30]
答案 1 :(得分:2)
使用StringJoiner类
import java.util.StringJoiner;
public class MyClass {
public static void main(String args[]) {
int[] x = {1,2,3,4,5};
StringJoiner sj = new StringJoiner(",", "[", "]");
for(int i : x) {
sj.add(i + "");
}
System.out.println(sj);
}
}
输出:
[1,2,3,4,5]
您还可以使用Array Related utils Class java.util.Arrays.toString(args);
答案 2 :(得分:0)
尝试一下:
public static void main(String[] args) {
int[] arr = { 10, 20, 30 };
int[] newArray = Arrays.copyOf(arr, arr.length + 1);
newArray[newArray.length - 1] = 40;
System.out.println(Arrays.toString(newArray));
}
答案 3 :(得分:0)
您也可以使用Streams这样操作。
int[] arr = { 1, 2, 3, 4, 5
};
String arrStr = Arrays.stream(arr).mapToObj(String::valueOf).collect(
Collectors.joining(", "));
System.out.println(arrStr);
您也可以通过使用Arrays.toString()
并修剪方括号来获得相同的效果。
String arrStr2 = Arrays.toString(arr);
arrStr2 = arrStr2.substring(1,arrStr2.length()-1);
System.out.println(arrStr2);
它们都显示。
1、2、3、4、5
答案 4 :(得分:-1)
更好的解决方案是染色蛋白的解决方案。
但是考虑到您的解决方案,这可能类似于toString()实现
在这种情况下,只需在(i == 0)时打印“,”即可
rel="preload"