java - 测试 toString 但失败?

标签 java arrays string tostring

使用此代码:

 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);

关于java - 测试 toString 但失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22445186/

相关文章:

python - 对具有 NaN 值的 Numpy 数组进行反向排序

java - 从 String 创建 int[] 数组(仅限正整数)

java - Duel 插件,使用 HashMap 发送请求和打开库存

java - Spring JPA Hibernate 处理大型数据库

java - Spring Boot Thymeleaf 下拉列表选项不显示值

c++将二维数组作为参数传递给函数?

java - 如果我更新 url 过滤器文本,我需要从命令行调用什么 Nutch 命令

javascript - 从令人兴奋的 Nodejs 重新构建 json

java - 字符串内的引号

python - 切片由数字组成的字符串有时会返回可变长度