今天项目中遇到个小问题,发现split以"|"符号分隔字符的时候得不到自己想要的分割效果如
String a = "abkd|krj";
String[] b = a.split("|");
调试结果b的值是[, a, b, k, d, |, k, r, j]
这样的结果明显不是自己想要的[abkd, krj]
仔细查看才发现如下信息:
String[] java.lang.String.split(String regex)
Parameters:
regex the delimiting regular expression(参数regex:正则表达式的定义)
spilit(String regex)方法的参数是一个正则表达式,"|"符号在正则表达式中的意思是:将两个匹配条件进行逻辑“或”(Or)运算。
如果需要程序把它当作字符串处理的话就需要转义字符
正确的写法
String a = "abkd|krj";
String[] b = a.split("\\|");
String a = "abkd|krj";
String[] b = a.split("|");
调试结果b的值是[, a, b, k, d, |, k, r, j]
这样的结果明显不是自己想要的[abkd, krj]
仔细查看才发现如下信息:
String[] java.lang.String.split(String regex)
Parameters:
regex the delimiting regular expression(参数regex:正则表达式的定义)
spilit(String regex)方法的参数是一个正则表达式,"|"符号在正则表达式中的意思是:将两个匹配条件进行逻辑“或”(Or)运算。
如果需要程序把它当作字符串处理的话就需要转义字符
正确的写法
String a = "abkd|krj";
String[] b = a.split("\\|");
结果[abkd, krj]
最后说明:如遇到类似如replace方法
String java.lang.String.replace(CharSequence target, CharSequence replacement)
符号"|"则不需要转义