2

我的代码:

  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

4 回答 4

12

利用

String[] results = result.split("\\|");
于 2013-07-24T13:57:56.893 回答
5

请注意,public String[] split(String regex)需要一个regex

您需要转义特殊的 char |
转义正则表达式由 完成\,但在 Java 中,\写为\\.

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

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

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

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

于 2013-07-24T14:01:08.580 回答
3

您需要|正确转义:

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

另一种方法是使用Pattern

String[] results = result.split(Pattern.quote("|"));
于 2013-07-24T13:59:30.320 回答
1

由于|是元字符,当您转义特殊字符时它可以工作。

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

相关的 Oracle 文档

于 2013-07-24T14:01:16.347 回答