要将段落拆分为单个单词的数组(例如字符串数组),最常见的答案是:
String para = "ameya needs to win this cup.";
String[] abc = para.split(" ");
但是,如果 para 包括在内?和 , 的和 ; 等等,这怎么做?例如:
String para = "ameya,needs. to win?this cup.";
String#split(arg)
将正则表达式作为参数,在正则表达式中,如果你想匹配多个字符之一,那么你可以使用这种形式(a|b|c|...|z)
,这意味着吃掉的字符a OR b OR c OR [...] OR z
(而不是...
你实际上需要放置其余的字母)。
但由于这种形式很难看,您可以使用看起来像[abcd...z]
. 但这也可以使用范围字符进行一些优化[a-z]
。
现在让我们回到你的问题。如果要匹配所有空格和其他字符,则可以尝试在每个[\\s.,;?]
. 此外,如果您想拆分单个字符组,您可以使用[\\s.,;?]+
. +
表示前面描述的一个或多个元素+
。
所以也许试试这种方式
String[] abc = para.split("[\\s.,;?]+");
使用正则表达式
String str = "ameya,needs. to win?this cup.";
String [] arr = str.split("[\\s|,|\\.|;|\\?]");