java中使用split分割字符串一個有趣的現象


最近在項目中,發現了一個bug,充分了展示了自己對java底層的認知有很多的不足和欠缺。

下面有段代碼:

String str="1#2#3";
String[] strs=str.split("#");
System.out.println(strs.length);                    

ok,上面這段代碼最終輸出結果是2,這沒有問題,但是如果換成下面的寫法呢,請看:

String str="##";
String[] strs=str.split("#");
System.out.println(strs.length);

結果輸出是0,如果再換一種寫法呢,請看:

String str="1##";
String[] strs=str.split("#");
System.out.println(strs.length);

結果輸出是1,那么好了,如果我無論哪種情況都想要2怎么辦,我寫了這樣一段轉換的代碼:

String str="##";
str=str.replaceAll("#", "v^#v^");
String[] strs=str.split("#");
for (int i = 0; i < strs.length; i++) {
	String text=strs[i].replaceAll("v\\^", "");
	if("".equals(text)){
	  text="略";
	}
System.out.println(text);
}

 結果: 

ok,問題完美解決。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM