在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中拆分多个分隔符[关闭]的主要内容,如果未能解决你的问题,请参考以下文章