溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Apache-common StringUtils工具類 字符分割方法split

發(fā)布時間:2020-08-03 15:59:16 來源:網(wǎng)絡(luò) 閱讀:801 作者:layveen 欄目:編程語言

最近開發(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é)果,包含三個元素:

Apache-common StringUtils工具類 字符分割方法split

我的第一反應(yīng),是正則惹的禍,但是查看下正則表達(dá)式的關(guān)鍵字,并沒有#。
用String類自帶的split試一下:
String[] arr2 = s1.split("#_#");
結(jié)果是對的:

Apache-common StringUtils工具類 字符分割方法split

String自帶的split就是根據(jù)正則表達(dá)式進(jìn)行分割的,所以驗(yàn)證了不是正則導(dǎo)致的。查看下StringUtils.split源碼,發(fā)現(xiàn)其實(shí)現(xiàn)邏輯是將分隔符的每個字符,然后多次分割。

后來找了另一個方法,把“#_#”作為一個整體分隔符進(jìn)行分割:splitByWholeSeparator

向AI問一下細(xì)節(jié)

免責(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)容。

AI