如何根据字符串中的分隔符拆分句子并计算单词的频率?
Billy_Reeves
Smorz
Nationalist_Left_-_Youth
Ancient_Greek_units_of_measurement
Jiuting_(Shanghai_Metro)
Blodgett,_MO
Baekjeong
Matt_Brinkman
National_Vietnam_Veterans_Art_Museum
我的文字文件是:
BufferedReader br = null;
int index=0;
String sCurrentLine;
br = new BufferedReader(new FileReader(fileName));//file name with path
while ((sCurrentLine = br.readLine()) != null)
{
for(int i=0; i<sCurrentLine.length(); i++)
{
for(int j=0; j<delimiters.length(); j++)
{
if(sCurrentLine.charAt(i) == delimiters.charAt(j))
{
int startIndex = 0;
int endIndex = i;
String subStr=sCurrentLine.substring(0, endIndex);
String subStr2=sCurrentLine.substring(endIndex+1,sCurrentLine.length());
sCurrentLine = subStr.concat(subStr2);
}
}
}
}
我找到了自己的解决方案,这可能会对其他人有所帮助:
#include two.h
void foo(){
printf("the value is %f", bar(1));
}
答案 0 :(得分:7)
尝试
split("\\t|,|;|\\.|\\?|!|-|:|@|\\[|\\]|\\(|\\)|\\{|\\}|_|\\*|/");
另外
答案 1 :(得分:3)
split方法将正则表达式作为参数,因此,要使用多个分隔符,需要输入由OR正则表达式运算符分隔的正则表达式或使用字符类(仅当分隔符是单个字符时)。
使用OR运算符:
String delimiters = "\\t|,|;|\\.|\\?|!|-|:|@|\\[|\\]|\\(|\\)|\\{|\\}|_|\\*|/";
使用字符类:
String delimiters = "[-\\t,;.?!:@\\[\\](){}_*/]";
正如您所看到的,必须转义某些字符,因为它们是正则表达式元字符。