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

最近開發微信小程序,openId的處理涉及一個自定義後綴的分割,因此想固然的使用了apache-common的StringUtils工具類的split方法:正則表達式

org.apache.commons.lang3.StringUtils.splitapache

示例代碼:小程序

String s1 = "owuVV4_BSs4oKz2srrw-4ceLgonCE#_#null";
String[] arr = org.apache.commons.lang3.StringUtils.split(s1, "#_#");

因爲自定義的分隔符是「#_#」,因此這個時候奇蹟出現了。
分割後的結果,包含三個元素:微信小程序

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

個人第一反應,是正則惹的禍,可是查看下正則表達式的關鍵字,並無#。
用String類自帶的split試一下:
String[] arr2 = s1.split("#_#");
結果是對的:微信

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

String自帶的split就是根據正則表達式進行分割的,因此驗證了不是正則致使的。查看下StringUtils.split源碼,發現其實現邏輯是將分隔符的每一個字符,而後屢次分割。ide

後來找了另外一個方法,把「#_#」做爲一個總體分隔符進行分割:splitByWholeSeparator工具

相關文章
相關標籤/搜索