Split 按单字符进行拆分的原因

一、问题简述

在使用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


同理还有以"."为分割符号的情况。

 

posted @ 2020-03-12 19:48  鸭梨果园长  阅读(520)  评论(0编辑  收藏  举报