以下行将我的字符串拆分为(.
),(,
),(:
)和换行符(\n
)字符。
String[] textPhrases = text.split("[.,:\\n]");
我也需要拆分连字符,但这不起作用:
String[] textPhrases = text.split("[.,:/-/\\n]");
我错过了什么或做错了什么?谢谢。
答案 0 :(得分:3)
这是正则表达式。连字符在字符类中具有特殊含义。您需要将连字符设置为类中的第一个或最后一个项:
[-.,:\n]
答案 1 :(得分:2)
我也需要拆分连字符,但这不起作用......我错过了什么或做错了什么?
首先回答你的问题,在这张照片中出现了什么问题,你的连字符周围的字符类中有正斜杠。相反,您应该使用转义序列字符(\\
)
[.,:/-/\\n]
^^^ Remove these and replace with the escape sequence character (\\-)
在字符类[]
中,您可以将连字符(-
)设置为第一个或最后一个字符。您也可以将其转义([.,:\\-\n]
)以添加连字符以进行匹配。
String s = "hey,hi.foo:bar\nbaz-quz";
String[] parts = s.split("[.,:\n-]");
System.out.println(Arrays.toString(parts));
输出
[hey, hi, foo, bar, baz, quz]
答案 2 :(得分:0)
你必须使用:
String[] textPhrases = text.split("[.,:\\-\\n]");