java字符串拼接的几种方式

java字符串拼接的几种方式1 plus 方式当左右两个量其中有一个为 String 类型时 用 plus 方式可将两个量转成字符串并拼接 Stringa intb 0xb Stringc a b 2 concat 方式当两个量都为 String 类型且值不为 null 时 可以用 concat 方式 Stringa a Stringb b Stringc a concat b 理论上 此时拼接效率应该最高

1. plus方式

当左右两个量其中有一个为String类型时,用plus方式可将两个量转成字符串并拼接。

String a=""; int b=0xb; String c=a+b;

2. concat方式

当两个量都为String类型且值不为null时,可以用concat方式。

String a="a"; String b="b"; String c= a.concat(b);

理论上,此时拼接效率应该最高,因为已经假定两个量都为字符串,做底层优化不需要额外判断或转换,而其他方式无论如何优化,都要先走到这一步。

3. append方式

当需要拼接至少三个量的时候,可以考虑使用StringBuffer#append()以避免临时字符串的产生

StringBuffer buf=new StringBuffer() buf.append("a"); if(someCondition){ buf.append("b"); } buf.append("c"); String d=buf.toString();

当a,b,c拼接起来会很长时,可以给在构造器中传入一个合适的预估容量以减少因扩展缓冲空间而带来的性能开销。

StringBuffer buf=new StringBuffer(a.length()+b.length()+c.length());

JDK对外提供的一些涉及可append CharSequence的参数或返回值类型往往是StringBuffer类型,毕竟安全第一,而StringBuffer大多数情况(包括append操作)线程安全。

若不会出现多线程同时对一实例并发进行append操作,建议使用非线程安全的StringBuilder以获得更好性能

4. 其他

若需拼接至少三个量,只用一个连续拼接的语句就可完成时,从使代码简洁角度考虑,用plus方式。

String a="a"; String b="b"; String c="c"; String d=a+b+c;

此时,第4句经JDK编译后其字节码(或)会自动优化为等效于下列代码编译后的字节码。

String d=new StringBuilder().append(a).append(b).append(c).toString();

若采用模板+参数来替换占位符的方式或需同时对要拼接日期/数字进行格式化,可以用String.format()来实现



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224883.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午10:55
下一篇 2026年3月17日 上午10:55


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号