也可以在连字符处拆分字符串
下面的行将我的字符串拆分为( .
),( ,
),(:)和换行符( \n
)。
String[] textPhrases = text.split("[.,:\\n]");
我也需要拆分连字符,但这不起作用:
String[] textPhrases = text.split("[.,:/-/\\n]");
我错过了什么或做错了什么? 谢谢。
这是正则表达式。 连字符在字符类中具有特殊含义。 您需要将连字符作为类中的第一个或最后一个项目:
[-.,:\n]
我也需要拆分连字符,但这不起作用……我错过了什么或做错了什么?
要在这张图片中首先回答你的问题,你可以在连字符周围的字符类中使用正斜杠。 相反,你应该使用转义序列字符( \\
)
[.,:/-/\\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]
你必须使用:
String[] textPhrases = text.split("[.,:\\-\\n]");