使用此代码:
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);