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


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

寒江孤影,江湖故人,相逢何必曾相识
原文地址:https://www.cnblogs.com/ayrie/p/12482238.html