Java按换行分割失败求助:Apache NetBeans桌面应用开发问题
解决方案
针对换行符问题的处理
如果你的文件用的是Windows风格换行(\r\n),直接用split("\n")会残留\r字符,导致看起来没分割开。换用兼容多系统换行符的写法:
String[] splitResult = content.split("\\r?\\n");
\\r?\\n能同时匹配Unix的\n和Windows的\r\n两种换行格式。
若两个内容实际在同一行
如果6.0和TLA002其实是在同一行里(只是视觉上换行),用零宽断言正则来精准分割:
String[] splitResult = content.split("(?<=\\d\\.\\d)(?=[A-Z]+\\d+)");
这个正则的作用是:
(?<=\\d\\.\\d):定位在数字.数字(比如6.0)的后面(?=[A-Z]+\\d+):定位在大写字母+数字(比如TLA002)的前面
这样就能在不破坏原有内容的前提下,把两个部分分开。
验证与排查
- 分割后可以打印结果确认,顺便去掉可能的空格:
for (String part : splitResult) { System.out.println(part.trim()); }
- 要是不确定换行符类型,先打印原始内容的字符数组,查看是否有不可见字符:
System.out.println(Arrays.toString(content.toCharArray()));
这样能看到\r(ASCII 13)、\n(ASCII 10)这类字符的存在。
- 读取文件时指定编码,避免编码问题导致的异常:
String content = new String(Files.readAllBytes(Paths.get("你的文件路径")), StandardCharsets.UTF_8);
内容的提问来源于stack exchange,提问作者HMN
相关产品推荐
相关产品推荐

