繁体   English   中英

基于新行的java字符串拆分

[英]java string split based on new line

我有以下字符串

String str="aaaaaaaaa\n\n\nbbbbbbbbbbb\n   \n";

我想在\\n上将其断开,所以最后我应该输入两个字符串aaaaaaaabbbbbbbb 我不要最后一个,因为它只包含空白。 因此,如果我使用str.split()根据换行符将其拆分,则最终数组应该只有两个条目。

我在下面尝试过:

String str="aaaaaaaaa\n\n\nbbbbbbbbbbb\n   \n".replaceAll("\\s+", " ");
String[] split = str.split("\n+");

它忽略所有\\n并给出单个字符串aaaaaaaaaa bbbbbbbb

删除对replaceAll()的调用,该调用也将删除换行符。 只需这样做:

String[] split = str.split("\n\\s*");

这不会仅在空格上分割-分割必须以换行符开头(随后是可选的其他空格)。


这是一些使用示例输入和边缘案例增强功能的测试代码:

String str = "aaaaaaaaa\nbbbbbb bbbbb\n   \n";
String[] split = str.split("\n\\s*");
System.out.println(Arrays.toString(split));

输出:

[aaaaaaaaa, bbbbbb bbbbb]

这应该可以解决问题:

String str="aaaaaaaaa\n\n\nbbbbbbbbbbb\n   \n";
String[] lines = str.split("\\s*\n\\s*");

它还将从所有行中删除所有尾随和前导空格。

\\ ns被您的第一条语句删除:\\ s匹配\\ n

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM