问题描述:输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。
import java.io.BufferedReader;
import java.io.FileReader;
/**
* 输入一个文件名和一个字符串,统计这个字符串在这个文件中的出现次数
*/
public class Account {
/**
* 工具类中的方法都是静态方式访问的因此将构造器私有不允许创建对象
*/
private Account() {
throw new AssertionError();
}
/**
* 统计给定文件中给定字符串的出现次数
* @param filename : 文件名
* @param word : 字符串
* @return : 字符串在文件中的出现次数
*/
public static int countWordInFile(String filename, String word) {
int counter = 0;
try (FileReader fr = new FileReader(filename)){
try (BufferedReader br = new BufferedReader(fr)){
String line = null;
while ((line = br.readLine()) != null) {
int index = -1;
while (line.length() >= word.length() && (index = line.indexOf(word)) >= 0) {
counter++;
line = line.substring(index+word.length());
}
}
}
}catch (Exception e) {
e.printStackTrace();
}
return counter;
}
}