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
[陝西省, 西安市, 高新區]