博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java字符串拼接的几种方式
阅读量:6655 次
发布时间:2019-06-25

本文共 1105 字,大约阅读时间需要 3 分钟。

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://blog.csdn.net/fei7837226/article/details/79377906

你可能感兴趣的文章
二进制文件每两个的字节位置交换
查看>>
SQL Server 索引(index) 和 视图(view) 的简单介绍和操作
查看>>
Apache中使用mod_php的请求响应执行流程
查看>>
python 学习笔记 (核心)
查看>>
spring aop记录日志
查看>>
还有人不认识通讯诈骗,短信验证码带你认识一下
查看>>
Docker(四)镜像创建
查看>>
unigui的UnimDatePicker控件使用经验
查看>>
C# 自定义堆栈进行回文检测的代码
查看>>
采用负责任的人工智能推动业务价值
查看>>
比较实用的wamp配置多站点方法
查看>>
用maven时出现,报错 miss 一些包,但是发现项目里已经引入了,但还是报错
查看>>
Servlet中ServletConfig和ServletContext漫谈
查看>>
为那些在职准备考IE的兄弟们做个参考-乾颐堂张IE执笔
查看>>
JQ中 $(document).scrollTop()、$('html').scrollTop()、 $(window).scrollTop()区别
查看>>
我的友情链接
查看>>
令人眼前一亮的下拉式终端 Tilda & Guake
查看>>
find
查看>>
注册 功能的实现
查看>>
Python - 元组(tuple) 详解 及 代码
查看>>