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工具

相关文章
相关标签/搜索