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 不支持,此时回退到默认值更稳妥。
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
组合样式增强可读性
用不同字符+重复次数实现分层效果,例如标题线用 "=",内容分隔用 "-",关键提示用 "*":
- 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),既防误输入,也避免意外撑爆输出缓冲区。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










