在Java中拆分多个分隔符[关闭]

Posted

技术标签:

【中文标题】在Java中拆分多个分隔符[关闭]【英文标题】:Split multiple delimiters in Java [closed] 【发布时间】:2017-05-05 23:44:27 【问题描述】:

如何根据字符串中的分隔符拆分句子并计算单词的频率?

 String delimiters = "\t,;.?!-:@[]()_*/";

我的文本文件是:

Billy_Reeves

Smorz

Nationalist_Left_-_Youth

Ancient_Greek_units_of_measurement

Jiuting_(Shanghai_Metro)

Blodgett,_MO

Baekjeong

Matt_Brinkman

National_Vietnam_Veterans_Art_Museum

【问题讨论】:

你尝试了什么? 【参考方案1】:

试试

split("\\t|,|;|\\.|\\?|!|-|:|@|\\[|\\]|\\(|\\)|\\|\\|_|\\*|/");

还有

Use String.split() with multiple delimiters

【讨论】:

您似乎知道split 采用正则表达式,但忘记了正则表达式中的某些字符是特殊的,可能需要转义。在当前形式中,此代码将抛出 PatternSyntaxException,因为它没有正确创建正则表达式。 现在修复@Pshemo【参考方案2】:

split 方法将正则表达式作为参数,因此,要使用多个分隔符,您需要输入由 OR 正则表达式分隔的正则表达式或使用字符类(仅当分隔符为单个字符时)。

使用 OR 运算符:

String delimiters = "\\t|,|;|\\.|\\?|!|-|:|@|\\[|\\]|\\(|\\)|\\|\\|_|\\*|/";

使用字符类:

String delimiters = "[-\\t,;.?!:@\\[\\]()_*/]";

如您所见,某些字符必须转义,因为它们是正则表达式元字符。

【讨论】:

以上是关于在Java中拆分多个分隔符[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

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

在拆分中使用多个分隔符[重复]

如何在python中拆分具有多个分隔符的字符串? [复制]

在C中使用多个分隔符拆分字符串[重复]

如何使用分隔符拆分列,同时仍保留其值[关闭]

在Python中使用多个分隔符拆分字符串[重复]