StringBuffer sb = new StringBuffer();
sb.append("aaa").append("|").append("bb").append("|");
System.out.println(sb.toString());
String[] strs = sb.toString().split("\\|");
for(int i=0; i<strs.length; i++) {
System.out.println(strs[i]);上面这些是书写正确的代码,这里我有个疑问,为什么用|截取时需要转义,而直接加入|字符时却不需要。求高人解答,谢谢~~~
String[] strs = sb.toString().split("\\|"); //转义
String[] strs = sb.toString().split("[|]"); //这样就表示|是普通字符
append(String str) 将指定的字符串追加到此字符序列。已经很明显了
这个是api文档说的
正则中|是或的意思,而split的参数是正则表达式,所以|需要转移。仔细看看api手册就能避免这些问题
split("\\|")
是方法
String[] java.lang.String.split(String regx);
regx是正则表达式 |是正则表达的式的保留符号,相等于关键字,所以用 \| 转义,然而在双引号下\\才表示一个\,所以是 split("\\|")
还支持split("[\\|]")