Java提供了两种方法来附加字符串并使它们成为一种。这两个方法分别是Concat()
method和+运算符。两者都是为相同的功能开发的,但仍存在一些主要差异。
以下是concat方法和+运算符之间的重要区别。
序号 | 键 | 合并方法 | +运算符 |
---|---|---|---|
1 | 类型 | 语法指的concat() 是一种方法,位于java.lang.String包下。 | 另一方面,+是运算符而不是方法。 |
2 | 参数数量 | concat方法可以将唯一的参数作为输入,并将此输入附加到调用此方法的目标字符串上。 | +运算符可以附加任意数量的字符串,并且不绑定仅作为参数输入。 |
3 | 输入类型 | concat方法只能将字符串作为输入,如果提供了任何其他类型的输入,则会要求编译时错误。 | +运算符可以接受任何类型的输入并将其转换为字符串,然后再追加到目标字符串。 |
4 | 输出为新字符串 | 仅当输出字符串的长度大于零时,concat方法才会在追加后创建新的字符串对象作为输出,否则返回与输出对象相同的目标字符串。 | +运算符总是创建新对象作为输出,而不管追加后产生的结果字符串的长度如何。 |
5 | 执行期间异常 | 如果此方法以null作为输入调用,则Concat方法将返回null指针异常。 | 另一方面,在用null调用的情况下,+运算符不会引发任何异常。 |
6 | 性能 | 在concat方法的情况下,如果结果字符串的长度为零,则不会创建新对象,因此与+运算符相比,它消耗的内存更少。 | 而+运算符总是在内存中创建新对象,而附加字符串则因此消耗更多内存。 |
concat方法vs +运算符的示例
ConcatDemo.java
public class ConcatDemo { public static void main(String args[]){ String s = "I am "; s = s.concat("Indian"); System.out.println(s); } }
输出结果
I am Indian
示例
OperatorDemo.java
public class OperatorDemo { public static void main(String args[]){ String s1 = "I am "; String s2 = "Indian"; String s3 = s2 + s1; System.out.println(s3); } }
输出结果
Indian I am