Java中,String类字符串拼接 用concat方法 和直接用“+”连接符拼接的区别
在String类中,字符串拼接既可以使用concat方法,也可以直接用连接符进行连接,那么两者有什么相同点和不同点呢,下面小编带大家通过代码一起来看一下。
concat方法的使用:public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串。
也就是说,concat可以将参数列表当中的字符串与当前字符串进行拼接,返回值为一个新的字符串。
“+”连接符的用法:它的非常简单,直接使用连接就可以了。
下面通过代码来看一下他们的相同点和区别。
public class Demo10String {
public static void main(String[] args) {
//拼接字符串相同点
String str1="Hello";
String str2="World";
String str3=str1.concat(str2);
String str4=str1+str2;
System.out.println(str3); //输出:HelloWorld
System.out.println(str4); //输出:HelloWorld
//不同点
String str="Hello" + 5; //输出:Hello5
System.out.println(str);
}
通过上面代码我们可以看出:
相同点1:concat方法 和直接用“+”连接符拼接都可以对两个字符串进行拼接。
相同点2:两种拼接方法都会重新形成一个新的字符串,这是因为字符串的内容永远不可变,所以拼接一定会形成一个新的字符串。
不同点:concat只能连接两个字符串;但是"+"连接符可以将字符串与非字符串类型拼接到一起(注意:只要两个当中有一个是字符串类型,用"+"连接符就会拼接成一个新的字符串)。
除此之外,当我们生成一个class文件,再进行反编译的时候,通过concat源码可以发现,用连接符进行连接,StringBuilder创建了更多的对象,而concat却没有,它使用的String类的内部实现。
总结:当进行两个字符串连接的时候,我们应该优先考虑用concat()函数。
当需要连接字符串和其他非字符串类型的变量的时候,cancat无法满足需求,我们就要优先考虑使用“+”连接运算符。