我有一个字符串如下
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, ...]
换句话说,似乎是按""
字符拆分。有什么问题?
答案 0 :(得分:5)
|
字符在正则表达式中具有特殊含义,因此必须使用反斜杠对其进行转义。然后你必须为Java反转掉反斜杠本身。尝试:
s.split("\\|")
Javadocs for the Pattern
class有很多关于正则表达式中特殊字符的详细信息。请参阅该页面中的“逻辑运算符”部分,了解|
的作用。
答案 1 :(得分:2)
请注意,public String[] split(String regex)需要正则表达式。
由于|
是元字符,因此当您转义特殊字符时,它会起作用。
String[] results = result.split("\\|");
或(亲自推荐)
String[] result = result.split(Pattern.quote("|"));
如果您使用Pattern
现在,|
将被视为普通字符 |
,而不是正则表达式元字符|
。
答案 2 :(得分:1)
您可以尝试以下
s.split("[|]")