使用此代码:

 public String toString()
{

    StringBuilder s = new StringBuilder();
    for (int i = 0; i < length; i++)
    {
        s.append(i).append(":").append(arr[i]).append(", ");
    }
    s.delete(s.length()-2, s.length()-1);
    return s.toString();
}


没有通过此测试:

@Test
public void testToString()
{
    BetterArray<String> b = new BetterArray<String>();
    assertEquals("", b.toString());
    b.add("hello");
    assertEquals("0:hello", b.toString());
    b.add("bye");
    assertEquals("0:hello, 1:bye", b.toString());
    b.add("adios");
    assertEquals("0:hello, 1:bye, 2:adios", b.toString());
}


它需要以一个空字符串(“”)开始,我正确地做到了吗?我是StringBuilder的新手。我正在使用s.delete删除结尾的逗号和空格

最佳答案

对于空字符串,这将导致java.lang.StringIndexOutOfBoundsException,因为您将没有逗号和尾随空格。

s.delete(s.length()-2, s.length()-1);

09-11 19:17
查看更多