簡體   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