[轉載] 使用String.split方法時要注意的問題
在使用String.split方法分隔字串時,分隔符如果用到一些特殊字元,可能會得不到我們預期的結果。
我們看jdk doc中說明
public String[] split(String regex)
Splits this string around matches of the given regular expression.
引數regex是一個 regular-expression的匹配模式而不是一個簡單的String,他對一些特殊的字元可能會出現你預想不到的結果,比如測試下面的程式碼:
用豎線 | 分隔字串,你將得不到預期的結果
String[] aa = "aaa|bbb|ccc".split("|");
//String[] aa = "aaa|bbb|ccc".split("|"); 這樣才能得到正確的結果
for (int i = 0 ; i
}
用豎 * 分隔字串執行將丟擲java.util.regex.PatternSyntaxException異常,用加號 + 也是如此。
String[] aa = "aaa*bbb*ccc".split("*");
//String[] aa = "aaa|bbb|ccc".split("*"); 這樣才能得到正確的結果
for (int i = 0 ; i
}
顯然,+ * 不是有效的模式匹配規則表示式,用"*" "+"轉義後即可得到正確的結果。
"|" 分隔串時雖然能夠執行,但是卻不是預期的目的,"|"轉義後即可得到正確的結果。
還有如果想在串中使用""字元,則也需要轉義.首先要表達"aaaabbbb"這個串就應該用"aaaabbbb",如果要分隔就應該這樣才能得到正確結果:
String[] aa = "aaabbbbccc".split("");
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/443058/viewspace-915732/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在使用微軟提供的安全模版(安全策略)時需要注意的安全問題 (轉)微軟
- 在 jdon 框架中使用日期型別時要注意的問題框架型別
- 安裝rac時需要注意的問題
- Hadoop使用常見問題以及解決方法(轉載)Hadoop
- Python import 時要注意的幾個問題PythonImport
- 運用mysqldump 工具時需要注意的問題MySql
- 使用blueZ進行藍芽程式設計時需要注意的問題藍芽程式設計
- 轉載:Eclipse build Android時不生成apk問題解決方法EclipseUIAndroidAPK
- 在下載opencv等類似的包時,需要注意到的一個大問題!OpenCV
- 使用 Laravel 訊息佇列要注意的問題Laravel佇列
- 使用 foreach 使用引用變數需要注意的問題變數
- 教育培訓APP開發時需要注意的問題APP
- 選擇代理IP時需要注意的三大問題
- RenderTexture用在RawImage上時要注意的顏色混合問題
- c#之String.Split 方法C#
- 除錯使用了函式模組的程式時需要注意的一個小問題除錯函式
- 關於時間轉換 SimpleDateFormat 的使用的問題ORM
- 使用nodeAPI時遇到非同步問題的解決方法API非同步
- visual studio建立專案時需要注意的問題
- 燒錄Mac OS系統光碟時需要注意的問題Mac
- awk拼sql時要注意分號,單引號的問題.SQL
- 轉:Oracle的時區問題Oracle
- 挑選http時候需要注意什麼問題HTTP
- 選擇資料分析工具時要注意哪些問題
- 解決使用jpa的實體物件轉json符串時懶載入問題物件JSON
- getParameter方法的中文問題【轉】
- Eclipse中使用的容器超時問題解決方法Eclipse
- 【問題解決】使用YYYY-MM-dd時間轉換問題
- 雲伺服器的時候應該要注意哪些問題呢?伺服器
- 多個DW同時更新,且表中有關係存在,需要注意的擊點問題。 (轉)
- 使用 redisson 時遇到的問題Redis
- 使用GDB與QEMU除錯核心時的問題分析(轉)除錯
- 在Weblogic+JBuilder7使用時的奇怪問題 (轉)WebUI
- 使用sequence的cache特性時要注意的
- 動態規劃使用一維陣列要注意的問題動態規劃陣列
- 10個需要注意的SQL問題SQL
- 配置Oracle RAC需要注意的問題Oracle
- webService 介面方法過載問題Web