我需要按照这个顺序示例打印数组:[1,2,3,4],但我不知道该怎么做。我开始是这样的:
for (int i = 0; i < a.length - 1; i++) {
return "[" + a[i] + ", "+ "]";
}
return null;
但我只打印了第一个元素,如[1,]。你能救我吗?
答案 0 :(得分:3)
致电Arrays.toString(a)
:
int[] a = {1,2,3,4};
System.out.println(Arrays.toString(a));
输出
[1, 2, 3, 4]
答案 1 :(得分:2)
不要单次迭代返回。您必须为所有迭代构建字符串,然后从那里返回。
StringBuilder builder = new StringBuilder();
builder.append("[");
for (int i = 0; i < a.length - 1; i++) {
builder.append(a[i]).append(",");
}
builder.append("]");
if (builder.length() > 1)
builder.setLength(builder.length() - 1);
return result;
似乎你正在学习数组和循环播放。
如果您想使用任何内置方法来完成工作,请使用Arrays.toString(a);
答案 2 :(得分:1)
您的代码的问题在于您在第一次循环迭代时返回。
还有其他更好更清洁的方法,比如使用:
Arrays.toString(array)
所以,你可以:
@Override
String toString() {
return Arrays.toString(a);
}
答案 3 :(得分:1)
此语句还会生成所需的输出
System.out.print(Arrays.asList(a));
答案 4 :(得分:0)
在循环中构建字符串,但在处理完所有元素之前不要返回:
@Override String toString() {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < a.length - 1; ++i) {
sb.append(a[i]);
sb.append(", ");
}
if (a.length > 0) {
sb.append(a[a.length - 1]);
}
sb.append("]");
return sb.toString();
}
我假设你想要追加数组中的所有元素,你并不是故意排除最后一个元素。
使用StringBuilder
比纯字符串连接更可取,因为以这种方式累积大量字符串会更有效。
答案 5 :(得分:0)
public static void main(String[] args)
{
int[] a = {1,2,3,4};
String res=null;
int num;
res = "[";
for (int i = 0; i < a.length; i++) {
num = a[i];
res = res + num +",";
}
res = res + "]";
System.out.println (res);
}
我们在循环期间构建字符串,将前一个字符串附加到下一个数字直到结束。然后我们打印完整的字符串! :)