这种类型的题,在许多互联网笔试面试中经常会遇到,今天在这详细的说明一下如何实现。具体解释后面有注释
废话不多说,直接上代码:
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CountsWord {
public static void main(String[] args) throws Exception {
BufferedReader readfile = new BufferedReader(new FileReader(
"C:\\test.txt"));/*首先将文件的内容读取到缓冲区bufferedreader中,利用
的是BufferedReader中的readline()读取文件中的每一个文本行,readline()并不是一行一行读取的,而是一个文本
行一个文本行读取。什么是文本行?看Java API中BufferedReader类总中的readline()的解释。*/
StringBuffer sb = new StringBuffer();
String text = null;
while ((text = readfile.readLine()) != null) {
sb.append(text);//将从文件中读出来的字符串追加,形成一个字符串
}
readfile.close();
Pattern patten = Pattern.compile("[a-zA-Z]+");/*用Pattern类中的complie()方法,将正则表达式编译到模式中*/
String sbstring = sb.toString();
Matcher