假设我有两个char
变量,后来我想将它们连接成一个字符串。这就是我要做的:
char c1, c2;
// ...
String s = "" + c1 + c2;
我见过有人说"" +
“把戏”是“丑陋的”等,因此您应该使用String.valueOf
或Character.toString
代替。我更喜欢这种构造,因为:
c1
并且c2
在视觉上处于同一水平
String.valueOf(c1) + c2
暗示一些特别之处 c1
是否真的有一个很好的论点,为什么String.valueOf
或Character.toString
更可取"" +
?
琐事:在中java.lang.AssertionError
,以下行出现7次,每种都有不同的类型:
this("" + detailMessage);
你的论点很好;这是Java语言中表达能力更强的领域之一,而且"" +
正如您所发现的那样,该习惯用法似乎根深蒂固。
请参阅JLS中的字符串串联。像这样的表达
"" + c1 + c2
相当于
new StringBuffer().append(new Character(c1).toString())
.append(new Character(c2).toString()).toString()
除了不需要所有中间对象(效率不是动机)之外。规范说一个实现可以使用StringBuffer
或不使用。由于该功能是语言的内置功能,因此我认为没有理由使用更详细的形式,尤其是在已经很冗长的语言中。
本文向大家介绍通过+(字符串串联)运算符进行字符串串联。,包括了通过+(字符串串联)运算符进行字符串串联。的使用技巧和注意事项,需要的朋友参考一下 您可以使用Java的“ +”运算符来连接字符串。 示例 输出结果
问题内容: 我正在从事Java代码优化。我不清楚或符号之间的区别: 第2行和第3行有什么区别? 问题答案: 这种方法使用StringBuilder创建结果字符串 此方法仅调用的静态方法来获取int的String版本 依次调用
问题内容: 这是以前有关Java中的String初始化的一些问题的后续问题。 在用Java进行了一些小测试之后,我面临以下问题: 为什么我可以执行此语句 当str2一个String对象初始化为,但我不能调用方法toString()上str2?那么Java如何将空字符串对象和字符串文字串联起来? 顺便说一句,我还尝试将一个初始化为null和字符串文字的Integer连接起来,”a_literal_s
问题内容: 在Python中,什么时候以及什么时候使用字符串连接与字符串替换比较容易。由于字符串连接的性能有了很大的提高,这(成为更多)是一种风格上的决定,而不是一种实际的决定吗? 举一个具体的例子,如何处理灵活的URI: 编辑:也有关于加入字符串列表和使用命名替换的建议。这些是中心主题的变体,即在什么时候做正确的方法?感谢您的回复! 问题答案: 根据我的机器,连接的速度(明显)更快。但是从风格上
问题内容: 以下语句, 产生输出。 但是,以下内容 产生。 区别在哪里? 问题答案: 您会因为操作符优先级和字符串转换的结合而看到此行为。 JLS 15.18.1 指出: 如果只有一个操作数表达式的类型为String,则对另一操作数执行字符串转换(第5.1.11节),以在运行时生成字符串。 因此,第一个表达式中的右侧操作数将隐式转换为字符串: 但是对于第二个表达式,必须将复合赋值运算符与一起考虑。
问题内容: Oracle Java Community网站上的一篇文章提供了以下方法作为示例(对于JPA Converter,但这并不相关): 将String y强制转换为String val有什么用?有正当的理由吗? 原始文章:JPA的新增功能 问题答案: 这样的转换是完全没有必要的。我可以想象那是以前 但是后来参数类型更改为,而作者只是忘了删除强制类型转换。