[英]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.