目前了解得到的字符拼接方法大概有三种:
1、用“+”拼接字符
通过阅读http://bsr1983.iteye.com/blog/1935856(转载)这篇博文,了解到java编译器在编译“+”的时候,会将其自动编译为StringBuilder对象的append方法;且又少个“+”就会有多少个StringBuilder对象的append方法生成。这样带来的结果就是开销很大,效率差。
2、使用String类的concat()方法
String s="hello";
System.out.println(s.concat("world"));
System.out.println(s);
运行结果:
hello world
hello
该方法是将参数字符串连接在当前字符串的尾部,并返回这个连接而成的长字符串,但是当前字符串本身并不改变。
concat 方法的结果等于:result = string1 + string2 + string3 + … + stringN。不论源字符串或结果字符串哪一个中的值改变了都不会影响另一个字符串中的值。
3、使用"append()"方法
StringBuffer类与StringBuilder类都有append()方法。StringBuffer类与StringBuilder类的区别与HashTable和HashMap的区别类似,即支持线程同步保证线程安全从而导致新能降低的问题。StringBuilder类是java5.0引进的,该类与HashMap类似不是线程安全的,但在单线程中性能要比StringBuffer类高。StringBuilder类的用法https://msdn.microsoft.com/zh-cn/library/2839d5h5(VS.80).aspx(转)。
这两个类的append()用法几乎相同。append方法将指定的参数对象转化成字符串,附加在StringBuffer/StringBuilder字符串对象之后。