连接空字符串来进行字符串转换真的那么糟糕吗?

2024-04-27

假设我有两个char变量,稍后我想将它们连接成一个字符串。我就是这样做的:

char c1, c2;
// ...

String s = "" + c1 + c2;

我见过有人说"" +“trick”是“丑陋的”等等,你应该使用String.valueOf or Character.toString反而。我更喜欢这种结构,因为:

  • I prefer using language feature instead of API call if possible
    • 一般来说,语言不是通常比 API 更稳定吗?
    • If language feature only hides API call, then even stronger reason to prefer it!
      • 更抽象!隐藏是好事!
  • I like that the c1 and c2 are visually on the same level
    • String.valueOf(c1) + c2暗示有什么特别之处c1
  • 它更短。

真的有一个很好的论据吗?String.valueOf or Character.toString优于"" +?


琐事:在java.lang.AssertionError http://www.google.com/codesearch/p?hl=en#av_p04Hv9fs/src/share/classes/java/lang/AssertionError.java,以下行出现 7 次,每次都有不同的类型:

    this("" + detailMessage);

你的论据很好;这是 Java 语言中最具表现力的领域之一,并且"" +正如您发现的那样,习语似乎根深蒂固。

See 字符串连接 http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#39990在JLS。像这样的表达

"" + c1 + c2

相当于

new StringBuffer().append(new Character(c1).toString())
                  .append(new Character(c2).toString()).toString()

除了所有中间对象都不是必需的(因此效率不是动机)。规范说实现可以使用StringBuffer或不。由于此功能内置于语言中,因此我认为没有理由使用更详细的形式,尤其是在已经很详细的语言中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接空字符串来进行字符串转换真的那么糟糕吗? 的相关文章

随机推荐