在 Java 中为 .split 使用多个分隔符

Posted

技术标签:

【中文标题】在 Java 中为 .split 使用多个分隔符【英文标题】:Using multiple delimiters for .split in Java 【发布时间】:2013-11-26 21:24:25 【问题描述】:

现在我的代码只用空格分隔单词,但我也想用 '.' 分隔。和“,”也是。这是我当前的代码:

for (String words : input.split("\\s+"))

例如,如果用户输入“bread,milk,eggs”或“Um...awkss”,它会认为是一个词,我希望每个词都是它自己的词。

当我在这里时,我无法得到

input.isAlpha() 

也可以工作。

【问题讨论】:

您可以使用的正则表达式的规范列表位于 docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html - 这不是一个教程,但周围还有很多其他教程。 isAlpha 是 C。在 Java 中它被称为 isLetter。阅读java2s.com/Tutorial/Java/0120__Development/… 我想在字符串上使用 isAlpha(或 java 中的任何内容),而不是字符。我的编译器告诉我 isLetter 仅适用于字符。谢谢你的链接。 好吧,我给你的链接会告诉你一种方法。不是唯一的方法,而是一种方法。 谢谢!我希望在 Java 中有一个方法,但这也可以。 【参考方案1】:

使用括号

for (String words : input.split("[\\s.,]+"))

当您想要括号中的任何字符时使用括号,+ 表示字符可以组合一次或多次。创建一个单独的分隔符,即space and periodcomma and space

【讨论】:

【参考方案2】:

您可以使用此正则表达式进行拆分

input.split("\\s+|.+|,+")

或者简单地说:

input.split("[\\s.,]+")

记住a dot doesn't have to be escaped inside square brackets

【讨论】:

很好奇,为什么 \\s+ 是空格的正则表达式,\\.句号,但逗号你只需要逗号? 句号是正则表达式中的特殊字符; `\` 是转义序列。正如我所说,尝试更多地了解正则表达式。找教程什么的。 @Dariusz 为什么要逃避.,如果你已经通过将它放在[] 中来逃避它? . 不需要在括号内转义 方括号中的\\s 后面不需要+【参考方案3】:

你可以用这个

mySring = "abc==abc++abc==bc++abc";
String[] splitString = myString.split("\\W+");

正则表达式 \W+ ---> 它将根据非单词字符分割字符串。

【讨论】:

以上是关于在 Java 中为 .split 使用多个分隔符的主要内容,如果未能解决你的问题,请参考以下文章

Java 用多个分隔符分隔字符串

Java - 基于多个分隔符拆分字符串

split使用多个分隔符分割字符串

vba 里面的split函数怎么实现多个分隔符

Python字符串分割方法总结

在java中使用分隔符为'|'的split函数字符(或符号)[重复]