Java中拆分多行字符串应优先用split("R")(Java 8+)或lines()(Java 11+),注意换行符兼容性、空行保留(需limit=-1)、首尾空白处理及BOM去除。

Java中拆分多行字符串,核心是识别换行符并用split()或StringTokenizer等工具处理,但要注意不同系统换行符差异(
、
、
)以及空行、首尾空白等常见边界情况。
split()最常用,关键是正则表达式要兼容各种换行符。直接写"
"会漏掉Windows的
或旧Mac的
。
split("\R")(Java 8+):\R是Unicode换行符通配符,自动匹配
、
、
等所有标准换行形式split("\r\n|\r|\n"),注意顺序:把\r\n放前面,避免
提前截断trim()再拆分,能避免首尾空行干扰:text.trim().split("\R")
默认split()会丢弃末尾空字符串(比如文本末尾有换行)。想保留所有行(包括空行),传-1作limit:
String[] lines = text.split("\R", -1); —— 空行也会作为数组元素存在split("\R")(无limit)遇到连续换行时,中间空行保留,但结尾多个换行会被压缩如果不需要数组,而是遍历、过滤或转换每行,lines()更简洁安全:
立即学习“Java免费学习笔记(深入)”;
text.lines().forEach(System.out::println);null,内部已处理换行符兼容性,还支持链式操作:text.lines().filter(s -> !s.isBlank()).map(String::trim).collect(Collectors.toList())
lines()返回的是Stream,不缓存结果,适合一次处理;需多次访问建议先转成List从文件读取的多行字符串开头可能含BOM(uFEFF),导致第一行出现异常字符:
text.startsWith("uFEFF") ? text.substring(1) : text
Files.readString(path, StandardCharsets.UTF_8)(Java 11+),它会自动忽略BOM基本上就这些。选split("\R")最省心,Java 11起优先用lines(),处理老旧环境再考虑手动适配换行符。不复杂但容易忽略细节。
以上就是在Java中如何拆分多行字符串_文本处理方式解析的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号