Double值用作StringBuilder的deleteCharAt()方法

时间:2015-10-01 21:19:35

标签: java stringbuilder

我正在准备Oracle Associate Certification并正在阅读以下书籍:

Oracle认证助理,Java SE7程序员学习指南

在第77页,有一个知识测试,其中包含以下问题:

  

鉴于以下声明:

     

StringBuilder sb = new StringBuilder();

     

以下哪项是sb变量的有效用途?

     

一个。 sb.append(34.5);湾sb.deleteCharAt(34.5); C。 sb.toInteger(3); d。   sb.toString();

我认为正确的答案是& d。

但是,这是本书的答案:

  

a,b和d没有StringBuilder toInteger方法。

没有其他解释。

所以,我去检查源代码,这里是:

279    public StringBuilder deleteCharAt(int index) {
280        super.deleteCharAt(index);
281        return this;
282    }

int为参数,方法不会在其他任何地方超载。

你知道对此的解释"更正"在书中?

3 个答案:

答案 0 :(得分:1)

对于上面给出的示例sb.deleteCharAt(34.5)

编译器说

  

StringBuilder类型中的方法deleteCharAt(int)不是   适用于参数(双)

然后这本书的答案是错误的。

答案 1 :(得分:1)

这本书是个错误。你的答案是正确的,它应该只是一个& d。这是一个链接, global precision setting 并找到以下勘误标题(大约在页面中间): 勘误类型:技术|页码:297 |勘误日期:2013年2月5日

答案 2 :(得分:1)

老实说,这看起来像书中的错误,您可能想要联系发布商。

虽然你可以将34.5转换为int,但是失去了精度,但它没有在答案B中发生。