我有一个字符串如下
String s = "3|4||5 9|4 0|0 4 8|..."
我想根据"|"
外观来拆分它。因此,拆分应该返回
["3","4","5 9","4 0,"0 4 8",...]
但是,在 Java 中,
s.split("|") = [, 3, |, 4, ...]
换句话说,""
它似乎是按角色分裂的。怎么了?
该|
字符在正则表达式中具有特殊含义,因此您必须使用反斜杠对其进行转义。然后,您必须为 Java 转义反斜杠本身。尝试:
s.split("\\|")
该类的JavadocsPattern
有很多关于正则表达式中特殊字符的详细信息。请参阅该页面中的“逻辑运算符”部分了解其|
作用。
请注意,public String[] split(String regex)需要一个regex。
由于|
是元字符,当您转义特殊字符时它可以工作。
String[] results = result.split("\\|");
或者(个人推荐这个)
String[] result = result.split(Pattern.quote("|"));
如果您使用模式
现在,|
将被视为普通字符 |
,而不是正则表达式 meta char |
。
您可以尝试如下
s.split("[|]")