Java中 String repeat 方法重复生成字符串如何使用

作者:袖梨 2026-07-27
String.repeat()是Java 11引入的方法,用于将字符串重复指定非负整数次:count为0时返回空字符串,为1时返回原字符串,大于1时返回拼接后的新字符串。

String.repeat() 是 Java 11 引入的便捷方法,用于将一个字符串重复指定次数,生成新字符串。它简单、不可变、线程安全,无需手动拼接或循环。

基本用法:传入非负整数次数

调用方式为 str.repeat(count),其中 count 必须 ≥ 0:

  • count == 0,返回空字符串 ""
  • count == 1,返回原字符串(不创建新对象,但语义上仍是新引用)
  • count > 1,返回由原字符串重复拼接而成的新字符串
  • count ,抛出 <code>IllegalArgumentException

例如:
"ab".repeat(3)"ababab"
"x".repeat(0)""
" ".repeat(5)" "(5个空格)

常见实用场景

该方法特别适合生成格式化填充、占位符或简单模板:

  • 缩进或对齐:如 " ".repeat(level) 生成缩进空格
  • 分隔线:如 "=".repeat(40) 快速生成 40 个等号的横线
  • 重复字符提示:如 "⚠".repeat(3) 得到 "⚠⚠⚠"
  • 构建固定长度字符串:配合 substring() 截取,可补全或截断(注意:repeat 本身不截断)

注意事项与限制

使用时需留意以下几点:

立即学习“Java免费学习笔记(深入)”;

  • 结果字符串长度 = 原字符串长度 × 次数;若乘积超过 Integer.MAX_VALUE(约 21 亿),会抛出 OutOfMemoryErrorIllegalArgumentException(取决于 JVM 实现)
  • 空字符串 "" 调用 repeat(n) 始终返回 ""(无论 n 多大,只要 n ≥ 0)
  • 该方法不会修改原字符串(String 不可变),始终返回新对象
  • 低于 Java 11 的版本不支持,需自行实现(如用 StringBuilder 循环 append)或升级 JDK

替代方案(Java 11 之前)

若项目仍用 Java 8,可用简洁工具方法模拟:

public static String repeat(String s, int count) {
  if (count   return new String(new char[count]).replace("

相关文章

精彩推荐