package test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
public static void main(String[] args) {
test t=new test();
String string =t.du();
System.out.println(string);
// 要检索的字符串
String s="You";
int k=t.cha(string, s);
System.out.println("文章中"+s+"出现的次数是:"+k);
}
// 读取文章的内容
public String du(){
String str="";
FileInputStream fis=null;
InputStreamReader reader=null;
File f=new File("F:/test/java.txt");
try {
fis=new FileInputStream(f);
reader=new InputStreamReader(fis);
// 创建字符数组
char []c=new char[100];
// 创建长度
int length=0;
try {
while((length=reader.read(c))>0){
str+=new String(c, 0, length);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return str;
}
public int cha(String s,String sd){
int R=0;
s=s.toUpperCase();
sd=sd.toUpperCase();
// 定义正则表达式
Pattern p=Pattern.compile("\\b"+sd+"\\b");
// 匹配器
Matcher m=p.matcher(s);
int start=0;
while(true){
boolean f= m.find(start);
if(f){
R++;
// 返回上一次找到位置的下标,第二次从指定位置开始
start=m.end();
}
else{
break;
}
}
return R;
}
}