String::repeat 方法自 JDK 11 起可用,用于简洁高效生成重复字符串,如 "a".repeat(3) 返回 "aaa";JDK 8 及以下不支持,需用 StringUtils.repeat 或 Collections.nCopies 替代。

Java 中的 String::repeat 方法从 JDK 11 开始引入,是生成重复字符串最简洁、高效的方式,无需手动拼接或循环。
确认 JDK 版本是否支持
该方法仅在 JDK 11 及以上版本可用。如果使用 JDK 8 或更低版本,调用会编译失败。可通过以下方式检查:
- 运行
java -version查看当前 JDK 版本 - 在 IDE 中确认项目语言级别设为 11 或更高
基本用法:传入重复次数
直接调用字符串对象的 repeat(int count) 方法,参数为非负整数:
-
"a".repeat(3)→"aaa" -
"ab".repeat(2)→"abab" -
" ".repeat(5)→" "(5 个空格)
若传入负数,会抛出 IllegalArgumentException;传入 0 返回空字符串 ""。
立即学习“Java免费学习笔记(深入)”;
常见实用场景
适合快速构造固定格式内容:
- 生成分隔线:
"=".repeat(40)→"========================================" - 缩进对齐:
" ".repeat(2)→" "(两个缩进层级) - 占位填充:
"0".repeat(8)→"00000000"(如初始化固定长度编号)
注意事项与替代方案
注意它不处理 null 字符串——调用 null.repeat(3) 会触发 NullPointerException。若需兼容 null,应提前判空:
str == null ? "" : str.repeat(n)- JDK 8 用户可借助
StringUtils.repeat(str, n)(Apache Commons Lang)或用String.join("", Collections.nCopies(n, str))
不复杂但容易忽略。


















