如何计算具有特定模式的文本中的单词(字符串)数量?
public static int matches(File file, Pattern p) {
int count = 0;
BufferedReader reader = new BufferedReader( new FileReader(file) );
String line = reader.readLine();
while (line != null) {
String[] vs = line.split(" ");
for(String s : vs){
if(s.equals(p)){ // the problem is here
count++;
}
line = reader.readLine();
}
return count;
}
如何计算单词(字符串)中某个模式出现的次数?
public static int matchesString(String s, Pattern p) {
I have no ideia how to do this method...
return 0;
}
答案 0 :(得分:0)
在第一个代码段中,您可以使用String.matches(String regex)
代替equals
方法 -
if(s.matches(regexString)) { //regexString is a string not an Pattern instance
对于第二个,您可以使用Matcher
类 -
int count = 0;
Matcher m = p.matcher(s);
while(m.find()) {
count++;
}
return count;
答案 1 :(得分:0)
使用正则表达式和单词边界,您可以使用以下内容获取一行中单词的出现次数:
int count = line.split("\\b" + word + "\\b").length -1;