写一个程序,从文件(c:\test.txt)中查出字符串”zhuobin”出现的次数?
    (要求:用最简洁的方法,写出符合上面要求的程序)

解决方案 »

  1.   

    String类的indexOf递归遍历就可以实现 我觉得  不过效率就不是很好了
      

  2.   

    public int findNumOfStringInFile(String filePath,String str)throws Exception{
        BufferReader br = new BufferReader(new FileReader(new File(filePath)));
        String line = null;
        int num = 0;
        while(line=br.readLine()!=null){
            String[] s = line.split(str);
            if(s.length()>1)
                num+=s.length-1;
        }
        return num;
    }
      

  3.   

    BufferedReader in = new BufferedReader(new FileReader("c:\\test.txt"));
    String s = "";
    int num = 0;
    while ((s = in.readLine()) != null) {
      if (line.indexOf("zhuobin") > 0) ++num;
    }return num;
      

  4.   

    同上,如果是查"zhuobin"的词的话,就不能用indexof 了.可能会有"sb_zhuobin"这样的存在
      

  5.   

    不追求效率的话 indexof可以·
      

  6.   

    用indexOf的实现完整程序:对楼上的进行了完善
    import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    public class ViewQuestion1 { public static void main(String[] args) throws IOException {
    BufferedReader in = new BufferedReader(new FileReader("c:\\test.txt")); 
    String s = ""; 
    int num = 0; 
            
    while((s = in.readLine()) != null) {
       int index = s.indexOf("zhuobin");
       if(index  > -1) {num++; System.out.print(index + " ");}
       //一行多个的情况
                while(s.indexOf("zhuobin", index+1)>-1) {
                  num++;
                  index = s.indexOf("zhuobin", index+1);
                  System.out.print(index + " ");
               } 
    }   
    System.out.println("\nnum: " + num);
    }
    }