[英]java string split based on new line
我有以下字符串
String str="aaaaaaaaa\n\n\nbbbbbbbbbbb\n \n";
我想在\\n
上将其断开,所以最后我应该输入两个字符串aaaaaaaa
和bbbbbbbb
。 我不要最后一个,因为它只包含空白。 因此,如果我使用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.