代码对比
✕ Java 8
String[] lines = text.split("\n");
StringBuilder sb = new StringBuilder();
for (String line : lines) {
sb.append(" ").append(line)
.append("\n");
}
String indented = sb.toString();
✓ Java 12+
String indented = text.indent(4);
String result = text
.transform(String::strip)
.transform(s -> s.replace(" ", "-"));
发现此代码有问题? 告诉我们。
为什么现代方式更好
内置方法
缩进是常见操作——现在只需一次调用。
可链式调用
transform() 允许将自定义函数插入字符串管道。
更简洁
无需 StringBuilder 循环进行缩进。
旧方式
手动缩进
现代方式
indent() / transform()
自 JDK
12
难度
入门
JDK 支持
String.indent() 和 transform()
可用
自 JDK 12 起广泛可用(2019 年 3 月)
工作原理
indent(n) 为每行添加 n 个空格。transform(fn) 将任意函数应用于字符串,支持在字符串操作管道中链式调用任何转换。
相关文档