在文件中查找字符串

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;
        
    }
    
    
}

 

posted @ 2015-08-15 17:57  微软小菜鸟  阅读(467)  评论(0编辑  收藏  举报