今天使用java split方法进行分割字符串时,直接使用
str.split("|")
得到的不是自己想要的分割后的字符串,而是一个一个的字符;
查阅相关资料才知道,
public String[] split(String regex)
方法来拆分一个有分隔符的字符串,但是由于参数regex是一个 regular-expression的匹配模式而不是一个简单的String,所以他对一些特殊的字符可能会出现你预想不到的结果,测试代码如下:
public static void main(String[] args){
String testStr = "张三|李四|abc";
String[] splitStrOne = testStr.split("|");
for(int i=0 ; i < splitStrOne.length; i++){
System.out.println("Error Result " + i + ":" + splitStrOne[i]);//输出单个字符
}
String[] splitStrTwo = testStr.split("\\|");
for(int i=0 ; i < splitStrTwo.length; i++){
System.out.println("Success Result " + i + ":" + splitStrTwo[i]);//输出字符串
}
}
输出结果:
Error Result 0:
Error Result 1:张
Error Result 2:三
Error Result 3:|
Error Result 4:李
Error Result 5:四
Error Result 6:|
Error Result 7:a
Error Result 8:b
Error Result 9:c
Success Result 0:张三
Success Result 1:李四
Success Result 2:abc