很多人遇到这个题的时候,都在想算法的问题,忽略了正则表达式,其实正则表达式也可以处理类似的问题。
代码很简单,就是很多人没有想到用正则,下面来模拟一下:
相信代码都能看懂:
import java.io.*;
import java.util.regex.*;
class text{
public static void main(String args[])throws Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("haha.txt")));
String s="";
Pattern p=Pattern.compile("\\bthis\\b");//统计 this 出现的次数
//Pattern p=Pattern.compile("\\ba\\b");//统计 a 出现的次数
int count=0;
while((s=br.readLine())!=null){
Matcher m=p.matcher(s);
while(m.find()){
count++;
System.out.print("start:"+m.start());
System.out.println("end:"+m.end());
}
}
System.out.println(count);
}
}
下面是哪个haha.txt文件内容: