我试图将输出显示为“1(10)2(23)3(29)”,而是输出为“1 2 3(10)(23)(29)”。如果有人可以查看代码并可能帮助我,我将不胜感激。我不想使用arraylist。
代码
// int[] Groups = {10, 23, 29}; in the constructor
public String toString()
{
String tempStringB = "";
String tempStringA = " ";
String tempStringC = " ";
for (int x = 1; x<=3; x+=1)
{
tempStringB = tempStringB + x + " ";
}
for(int i = 0; i < Group.length;i++)
{
tempStringA = tempStringA + "(" + Groups[i] + ")";
}
tempStringC = tempStringB + tempStringA;
return tempStringC;
}
答案 0 :(得分:2)
问题在于,您将所有索引附加到一个String
,将所有元素附加到另一个,然后连接两个。
相反,请尝试构建一个String
(并记住使用StringBuffer
/ StringBuilder
,因为它比String
连接更有效率:
public String toString() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < Groups.length; i++) {
sb.append(i+1).append('(').append(Groups[i]).append(')');
}
return sb.toString();
}
答案 1 :(得分:0)
您应该使用:
// int[] Groups = {10, 23, 29}; in the constructor
public String toString()
{
String tempStringB = "";
for(int i = 0; i < Group.length;i++)
{
tempStringB = (i==0?"":" ")+ tempStringB + (i+1) + " "+ "(" + Groups[i] + ")";
}
return tempStringB;
}
但是使用StringBuffer的方式会很聪明,特别是如果你的小组变大了