您好,登錄后才能下訂單哦!
最近開發微信小程序,openId的處理涉及一個自定義后綴的分割,所以想當然的使用了apache-common的StringUtils工具類的split方法:
org.apache.commons.lang3.StringUtils.split
示例代碼:
String s1 = "owuVV4_BSs4oKz2srrw-4ceLgonCE#_#null";
String[] arr = org.apache.commons.lang3.StringUtils.split(s1, "#_#");
由于自定義的分隔符是“#_#”,所以這個時候奇跡出現了。
分割后的結果,包含三個元素:
我的第一反應,是正則惹的禍,但是查看下正則表達式的關鍵字,并沒有#。
用String類自帶的split試一下:String[] arr2 = s1.split("#_#");
結果是對的:
String自帶的split就是根據正則表達式進行分割的,所以驗證了不是正則導致的。查看下StringUtils.split源碼,發現其實現邏輯是將分隔符的每個字符,然后多次分割。
后來找了另一個方法,把“#_#”作為一個整體分隔符進行分割:splitByWholeSeparator
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。