Java string.split-由多个字符分隔符分隔
我想基于所有可能的分隔符(如逗号、冒号、分号、句点、空格、hiphens等)解析整个文件 假设我有一个假设的字符串行“Hi,X How are:anyyou?”我应该得到包含Hi,X,How,How,are,any和you项的输出数组 如何在String.split方法中指定所有这些分隔符 提前感谢。采用正则表达式,在本例中,您希望将非单词字符(regexJava string.split-由多个字符分隔符分隔,java,regex,Java,Regex,我想基于所有可能的分隔符(如逗号、冒号、分号、句点、空格、hiphens等)解析整个文件 假设我有一个假设的字符串行“Hi,X How are:anyyou?”我应该得到包含Hi,X,How,How,are,any和you项的输出数组 如何在String.split方法中指定所有这些分隔符 提前感谢。采用正则表达式,在本例中,您希望将非单词字符(regex\W)作为拆分,因此它只是: String input = "Hi,X How-how are:any you?"; String[] par
\W
)作为拆分,因此它只是:
String input = "Hi,X How-how are:any you?";
String[] parts = input.split("[\\W]");
如果希望更明确,可以在表达式中使用精确的字符:
String[] parts = input.split("[,\\s\\-:\\?]");
为什么在上面的表达式中使用or ing运算符?它们有必要吗?@Hovercraft-没有,但对我来说,它更容易阅读,所以这就是我的选择。我自己的偏好是向新手展示正则表达式,而不需要不必要的混乱。YMMV@UmeshKacha:请看一下关于这个的教程部分:。拍摄整个教程是值得的。然后当完成这一步时,我最喜欢的是哪一步。@MarkElliot我很确定character类将匹配管道(
|
)字符,而不是将它们视为“或”指令。在这种情况下,这不是一个真正的问题,但是你应该意识到它并没有做你认为它在做的事情。它可能会在更复杂的代码中引起混乱和bug。