string.concat()是java中用于拼接两个字符串的方法,返回新字符串且不修改原字符串;仅接受一个string参数,若参数为null则转为"null",但调用对象不能为null,否则抛nullpointerexception。

String.concat() 是 Java 中用于拼接字符串的一个方法,它会将调用对象(即原字符串)与参数字符串连接起来,返回一个**新字符串**,原字符串本身不会被修改(因为 String 是不可变的)。
concat 的基本用法
语法很简单:
string1.concat(string2)其中 string1 是调用方(非 null),string2 是要拼接的字符串(可以为 null,此时会转成字符串 "null")。
- 如果 string2 为 null,concat 会将其当作字符串 "null" 处理,不会抛出 NullPointerException
- concat 只接受一个参数,不支持多个字符串连续拼接(不像 + 或 String.join)
- 底层其实等价于 new String(new StringBuilder().append(string1).append(string2)),但更轻量
和 + 操作符的区别
虽然效果相似,但 concat 和 + 有几点关键不同:
- 性能方面:在已知两个字符串拼接时,concat 比 + 略快(+ 在编译期可能优化为 StringBuilder,但运行时动态拼接仍需创建 StringBuilder 对象)
- 空值处理:+ 操作符遇到 null 会自动转为 "null" 字符串;concat 同样如此,行为一致
- 类型限制:concat 只能拼接 String 类型;+ 可以和任意类型拼接(会调用 toString())
实际使用示例
以下是一些常见写法:
String a = "Hello";String b = "World";
String result = a.concat(b); // 结果:"HelloWorld"
也可以链式调用(注意每次返回新对象):
String s = "a".concat("b").concat("c"); // "abc"注意:不能对 null 调用 concat,否则会抛出 NullPointerException:
String s = null;s.concat("x"); // 运行时报错!
什么时候推荐用 concat?
- 明确只拼接两个字符串,且都确定非 null
- 追求语义清晰:concat 比 + 更明确表达“连接”意图
- 在性能敏感的循环中避免隐式 StringBuilder 创建(但多数场景差异可忽略)
- 配合 Optional 或判空逻辑使用,比如:str != null ? str.concat(suffix) : suffix
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











