黑马程序员技术交流社区

标题: 统计文本文件中字符次数,结果存入另一个文... [打印本页]

作者: ysheluo    时间: 2015-4-13 20:52
标题: 统计文本文件中字符次数,结果存入另一个文...
  1. /*题目6:
  2. * 6、 统计一个文本文件中字符出现的次数,结果存入另外的一个文本文件中。例如:
  3. *       a:  21 次
  4. *       b:  15 次
  5. *       c: 15 次
  6. *       把:  7 次
  7. *       当:  9 次
  8. *              前:  3 次
  9. *      ,:30 次
  10. *  思路:首先利用io技术读取文本,全部文本组成一个字符串,然后存放入字符数组中,将字符放入treeset中去,
  11. *  然后数组中每一位去遍历数组,如果查到那么计数器count+1,接着将数据通过io技术存储到 另一个文本文档中去。
  12. */
  13. public class Test6 {

  14.         public static void main(String[] args) throws Exception{
  15.                 //第一步:读取并存到一个字符串中
  16.                 BufferedReader buf=new BufferedReader(new FileReader("c:\\1.txt"));
  17.                 String str="",line="";
  18.                 while((line=buf.readLine())!=null){
  19.                         str=(line+str).trim();
  20.                 }
  21.                 buf.close();//关闭流
  22.                 //第二步利用正则表达式去除空字符并将字符串重新组装
  23.                 String[] arr=str.split(" +");
  24.                 String newstr="";
  25.                 for(int i=0;i<arr.length;i++){
  26.                         newstr=arr[i]+newstr;
  27.                 }
  28.                 //第三步放入到treeset集合中
  29.                 TreeSet<String> tm=new TreeSet<String> ();
  30.                 //开传
  31.                 for(int i=0;i<newstr.length();i++){
  32.                         tm.add(newstr.substring(i, i+1));
  33.                 }
  34.                 Iterator<String> it=tm.iterator();
  35.                 String finalstr="";
  36.                 while(it.hasNext()){
  37.                         String str1=it.next().toString();
  38.                         finalstr=finalstr+str1;
  39.                         int count=0;
  40.                         for(int j=0;j<newstr.length();j++){
  41.                                 if(newstr.substring(j, j+1).equals(str1)){
  42.                                         count++;
  43.                                 }
  44.                         }
  45.                         finalstr=finalstr+"("+count+")";
  46.                 }
  47.                 //利用io写入2.txt中
  48.                 BufferedWriter bufw=new BufferedWriter(new FileWriter("c:\\2.txt"));
  49.                 bufw.write(finalstr);
  50.                 bufw.flush();//刷新流
  51.                 bufw.close();//关闭流
  52.         }

  53. }
复制代码

作者: zztierlie    时间: 2016-8-14 16:37
赞一个,赞一个,赞一个,赞一个,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2