String的split函數處理split(".")的問題

split函數處理split(".")的問題

在使用split(".")拆分字符串“陝西省.西安市.高新區”時候,發現返回的數組長度是0

	String str = "陝西省.西安市.高新區";
	String[] strs = str.split(".");
	System.out.println(strs.length);

查看源碼,發現走了以下方法
在這裏插入圖片描述

通過註釋可以看到,說是當有一個字符時候,這字符不能是RegEx的元字符".$|()[{^?*+\"

可以通過對元字符".$|()[{^?*+\"進行轉義來進行處理,如split("\\."),split("\\|")

那麼上面的代碼可以改爲:

	String str = "陝西省.西安市.高新區";
	String[] strs = str.split("\\.");
	System.out.println(strs.length);
	//這裏爲了方便查看打印結果,我把數組轉爲集合了
	System.out.println(Arrays.asList(strs));

輸出結果爲

3
[陝西省, 西安市, 高新區]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章