有好几次想切分字符串都没有成功,也没有找到原因
是这样的字符串:aaa|bbb|ccc|ddd。
用的是竖线来隔开的,之前切分的是这样的:aaa;bbb;ccc;ddd。
这样的字符串直接这样
String[] resArr=res.split(";");
来切分就成功了,可是像用“|”来隔开的字符串,用同样的方法行不通。
我又尝试了一下别的字符分割,看用别的符号隔开字符串时切分,会不会也遇到这种问题。
果然当我用英文圆点“.”时,和竖线一样也不成功,同样还有其他,例如:“$”、“[”等符号。试了好多目前就发现这几个。
自己摸索着用了下面的方法解决了问题,就是在切分的时候把符号转义,加两个撇就可以了。
public class Demo01 {
public static void main(String[] args) {
String res="U2032|AAAAAAA|4218710000000277|1";
//直接这样切分没用
String[] resArr01=res.split("|");
String[] resArr=res.split("\\|");
for (String string : resArr) {
System.out.println(string);
}
}
}
后来我又试了一下,一些不需要转义的符号,比如分号“;”,同样加上两个撇来切分,照样可以切分成功。
所以为了安全起见,都加两个撇吧。