我使用string.split(“|”),我得到的数组中包含一个数组元素中的每个字符

时间:2013-07-24 13:56:39

标签: java

我的代码:

  result ="sub||hi";
  String[] results = result.split("||");

我想:

results [0]=sub
results [1]=hi

但我明白了:

result[0]=s
result[1]=u
result[2]=b
result[3]=h
result[4]=s

4 个答案:

答案 0 :(得分:12)

使用

String[] results = result.split("\\|");

答案 1 :(得分:5)

请注意,public String[] split(String regex)需要正则表达式

您需要逃避special char | 转义正则表达式是由\完成的,但在Java中,\写为\\

替代解决方案,值得一提:

您可以使用public static String quote(String s)返回指定字符串的文字模式字符串”:

String[] result = result.split(Pattern.quote("|"));

现在,|将被视为字符 |,而不是具有特殊含义的正则表达式|

答案 2 :(得分:3)

您需要正确转义|

String[] results = result.split("\\|");

另一种方法是使用Pattern

String[] results = result.split(Pattern.quote("|"));

答案 3 :(得分:1)

由于|是元字符,因此当你转义特殊字符时它会起作用。

String[] results = result.split("\\|");

Related Oracle docs