String.repeat()是Java 11引入的方法,用于按指定次数重复字符串生成分割线;支持变量控制长度、终端宽度适配、多样式组合及安全校验(限1–200)。

String.repeat() 是 Java 11 引入的便捷方法,能直接按指定次数重复字符串,非常适合生成动态长度的控制台分割线——无需循环拼接,代码简洁且可读性强。
用变量控制分割线长度
将分割符(如 "-"、"=" 或 "*")与一个整数变量结合调用 repeat(),即可生成任意长度的线:
- int width = 50;
- String line = "-".repeat(width);
- System.out.println(line); // 输出 50 个 "-"
适配终端宽度(自动获取)
若想让分割线贴合当前终端宽度,可借助系统属性或简单启发式估算(Java 原生不提供标准 API 获取终端列数,但可通过环境变量粗略判断):
- int fallbackWidth = 80;
- String termWidth = System.getenv("COLUMNS");
- int width = termWidth != null ? Integer.parseInt(termWidth) : fallbackWidth;
- System.out.println("=".repeat(width));
注意:COLUMNS 在 Linux/macOS 的 shell 中通常有效;Windows CMD 不支持,此时回退到默认值更稳妥。
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
立即学习“Java免费学习笔记(深入)”;
组合样式增强可读性
用不同字符+重复次数实现分层效果,例如标题线用 "=",内容分隔用 "-",关键提示用 "*":
- String header = "=".repeat(40);
- String separator = "-".repeat(40);
- String alert = "*".repeat(10) + " WARNING " + "*".repeat(10);
- System.out.printf("%s%n%s%n%s%n", header, "User Settings", separator);
安全使用:避免负数或过大值
repeat() 对负数抛 IllegalArgumentException,对极大数值(如超过 Integer.MAX_VALUE)可能触发内存异常。建议加简单校验:
- int width = Math.max(1, Math.min(200, userInputWidth));
- System.out.println("—".repeat(width));
限制在合理范围(如 1–200),既防误输入,也避免意外撑爆输出缓冲区。

















