zoukankan      html  css  js  c++  java
  • 写入一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。

     

     1 /**
     2      * 写入一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。
     3      * @param fileName 文件名
     4      * @param str 查找的字符串
     5      * @return
     6      * @throws Exception
     7      */
     8     //方法一
     9     public static int funCount1(String fileName,String str) throws Exception {
    10         int count = 0;
    11         BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
    12         String line ;
    13         StringBuilder sb = new StringBuilder();
    14         while((line = bf.readLine() )!= null) {
    15             sb = sb.append(line);
    16         }
    17         int a = 0;
    18         while((a = sb.indexOf(str)) != -1) {
    19             sb = sb.delete(a, a + str.length());
    20             count++;
    21         }
    22         return count;
    23     }
    24     
    25     //方法二:正则表达式
    26     public static int funCount2(String fileName,String str) throws Exception {
    27         int count =0 ;
    28         BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
    29         String line ;
    30         StringBuilder sb = new StringBuilder();
    31         while((line = bf.readLine() )!= null) {
    32             sb = sb.append(line);
    33         }
    34         String pattern = ".*" + str + ".*";
    35         while(Pattern.matches(pattern, sb.toString())) {
    36             count ++;
    37             int a = sb.indexOf(str);
    38             sb.delete(a, a + str.length());
    39         }
    40         return count;
    41     }

    个人并不推荐正则表达式来写这道题,因为都要用到indexOf,很明显用正则还需要编译正则表达式匹配模式,然后对输入字符串进行解释和匹配操作;很明显复杂了些;

  • 相关阅读:
    Oracle 集合类型
    JAVA_SE_笔记整理(反射机制)
    JAVA_SE_笔记整理(GUI)
    JAVA_SE_笔记整理(网络编程)
    JAVA_SE_笔记整理(多线程)
    JAVA_SE_笔记整理(流)
    JAVA_SE_笔记整理(集合三)
    JAVA_SE_笔记整理(集合二)
    JAVA_SE_笔记整理(集合一)
    JAVA_SE_笔记整理(面向对象四(接口,包,内部类))
  • 原文地址:https://www.cnblogs.com/qiong2017/p/7678461.html
Copyright © 2011-2022 走看看