![](/img/trans.png)
[英]How can I override the toString method of an ArrayList in Java?
[英]How can I override toString in java using an integer array?
我需要按以下順序示例打印數組:[1、2、3、4],但是我不知道該怎么做。 我開始是這樣的:
for (int i = 0; i < a.length - 1; i++) {
return "[" + a[i] + ", "+ "]";
}
return null;
但是我只打印了第一個元素,如[1,]。 你能幫助我嗎?
調用Arrays.toString(a)
:
int[] a = {1,2,3,4};
System.out.println(Arrays.toString(a));
輸出量
[1, 2, 3, 4]
不要單次迭代返回。 您必須為所有迭代構建字符串,然后從那里返回。
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);
代碼的問題是您要在第一次循環迭代中返回。
還有其他更好,更清潔的方法,例如使用:
Arrays.toString(array)
因此,您可以擁有:
@Override
String toString() {
return Arrays.toString(a);
}
該語句還產生所需的輸出
System.out.print(Arrays.asList(a));
在循環中構建字符串,但是在處理完所有元素之前不要返回:
@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
比普通的字符串連接更可取,因為這樣可以更有效地積累許多字符串。
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);
}
我們在循環過程中構建字符串,並將下一個數字附加到前一個字符串,直到結尾。 然后我們打印完整的字符串! :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.