一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

一文搞懂Java字符串拼接与常用方法 AI全栈开发

时间:2026-06-14 08:53:47 编辑:袖梨 来源:一聚教程网

1. + 运算符

最常用的拼接方式,简洁直观:

一文搞懂 Java 字符串拼接与常用方法【AI 全栈开发】

String s = "Hello" + " " + "World";
String name = "Java";
String greeting = "Hello, " + name + "!";

底层原理:编译器会自动将其优化为 StringBuilder 操作(JDK 9 起改为 StringConcatFactory 动态生成拼接字节码),所以单行拼接性能不是问题。

️ 陷阱:循环中用 + 拼接,每次循环都会创建新的 StringBuilder,产生大量临时对象:

// 反例  — 循环中用 +
String result = "";
for (int i = 0; i < 10000; i++) {
    result += i;  // 每次循环都 new StringBuilder,极低效
}// 正例  — 循环中用 StringBuilder
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10000; i++) {
    sb.append(i);
}
String result = sb.toString();

2. StringBuilder / StringBuffer

线程安全性能适用场景
StringBuilder单线程,绝大多数场景
StringBuffer稍慢多线程需要同步时
StringBuilder sb = new StringBuilder();
sb.append("Hello").append(" ").append("World");
String result = sb.toString();

可以预分配容量以减少扩容开销:

StringBuilder sb = new StringBuilder(1024); // 预估大小,避免频繁扩容

3. String.concat()

String s = "Hello".concat(" ").concat("World");
  • 内部直接创建 char[] 并复制,比 + 在少量拼接时更高效
  • 适合确定只有两个字符串拼接的场景

4. String.join()

JDK 8 引入,适合用分隔符拼接多个字符串:

String result = String.join(", ", "Java", "Python", "Go");
// → "Java, Python, Go"// 拼接集合
List<String> list = List.of("a", "b", "c");
String joined = String.join("-", list);  // "a-b-c"

5. String.format()

适合需要格式化输出的场景:

String s = String.format("姓名:%s,年龄:%d", "张三", 25);
// → "姓名:张三,年龄:25"

总结

方式适用场景性能
+单行少量拼接 编译器优化后良好
StringBuilder循环或大量拼接 最佳
StringBuffer多线程大量拼接 略慢于 Builder
concat()两个字符串拼接 良好
String.join()分隔符拼接 良好
String.format()格式化拼接️ 较慢,胜在可读性

热门栏目