也可以在连字符处拆分字符串

下面的行将我的字符串拆分为( . ),( , ),(:)和换行符( \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]");