您好,登錄后才能下訂單哦!
最近開發(fā)微信小程序,openId的處理涉及一個自定義后綴的分割,所以想當(dāng)然的使用了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, "#_#");
由于自定義的分隔符是“#_#”,所以這個時候奇跡出現(xiàn)了。
分割后的結(jié)果,包含三個元素:
我的第一反應(yīng),是正則惹的禍,但是查看下正則表達(dá)式的關(guān)鍵字,并沒有#。
用String類自帶的split試一下:String[] arr2 = s1.split("#_#");
結(jié)果是對的:
String自帶的split就是根據(jù)正則表達(dá)式進(jìn)行分割的,所以驗(yàn)證了不是正則導(dǎo)致的。查看下StringUtils.split源碼,發(fā)現(xiàn)其實(shí)現(xiàn)邏輯是將分隔符的每個字符,然后多次分割。
后來找了另一個方法,把“#_#”作為一個整體分隔符進(jìn)行分割:splitByWholeSeparator
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。