在文件中查找字符串
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; } }