我试图将输出显示为“ 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;
}

最佳答案

问题是您要将所有索引附加到一个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();
}

关于java - 串联输出问题(toString数组)-Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3024362/

10-12 01:26
查看更多