一、问题简述
在使用String.split()对字符串进行拆分时需要注意,如果使用某些特殊的符号作为分隔符,将不能正常拆分。例如:
1 String info = "org|shop|person"; 2 String [] array= info.split("|"); 3 4 System.out.println("array[0] --- "+array[0]); 5 System.out.println("array[1] --- "+array[1]); 6 System.out.println("array[2] --- "+array[2]);
运行结果:
array[0] --- o
array[1] --- r
array[2] --- g
会发现结果并不如预期那样分别是 org ,shop,person 三个字符串,而是被按单个字符进行了拆分。
二、原因
split() 支持按正则表达式进行拆分,当已"|"做分割符时,被误认为是正则表达式。
三、处理方案
处理方法也很简单,在分割符文本之前加上转义符号"\"即可。
1 String info = "org|shop|person"; 2 String [] array= info.split("\|"); 3 4 System.out.println("array[0] --- "+array[0]); 5 System.out.println("array[1] --- "+array[1]); 6 System.out.println("array[2] --- "+array[2]);
运行结果:
array[0] --- org
array[1] --- shop
array[2] --- person
同理还有以"."为分割符号的情况。