【发布时间】:2011-01-31 04:17:05
【问题描述】:
假设我有两个char 变量,稍后我想将它们连接成一个字符串。我会这样做:
char c1, c2;
// ...
String s = "" + c1 + c2;
我见过有人说"" +“把戏”是“丑陋的”等等,你应该改用String.valueOf 或Character.toString。我更喜欢这种结构,因为:
- 如果可能,我更喜欢使用语言功能而不是 API 调用
- 一般来说,语言不是比 API 更稳定吗?
- 如果语言特性只隐藏API调用,那么更有理由更喜欢它!
- 更抽象!隐藏很好!
- 我喜欢
c1和c2在视觉上处于同一水平-
String.valueOf(c1) + c2暗示c1有一些特别之处
-
- 它更短。
为什么String.valueOf 或Character.toString 比"" + 更可取,真的有很好的论据吗?
琐事:在java.lang.AssertionError 中,以下行出现了 7 次,每次都有不同的类型:
this("" + detailMessage);
【问题讨论】:
-
当然
String.valueOf(c1) + c2会很奇怪,如果你沿着这条路走,你会写String.valueOf(c1) + String.valueOf(c2) -
@NomeN: 你可以写
new String(new char[] {c1, c2}) -
广告琐事:Java SE 核心库并不完全是良好编码风格的源泉,这是众所周知的 ;-)
-
@Joachim Sauer 是的,这是另一种方法。我只是想指出,转换一个而不转换另一个有点荒谬。正如 OP 正确地说的那样,它会错误地暗示正在发生一些特别的事情。
-
在此处查找相关问题:stackoverflow.com/questions/1572708/…
标签: java string coding-style