题目要求:

  指定文件目录, 但是会递归遍历目录下的所有子目录,输出文件中所有不重复的单词,按照出现次数由多到少排列。

源码:

  

package word;
import java.io.File; 
import java.io.InputStreamReader; 
import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.FileInputStream;
import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
import java.io.FileWriter; 
 
public class Demo{ 
 void getsize(File file)
 {if(file.isFile())
  
 {System.out.println(file.getName()+":");
  int n=0;
 int flag;
 int m=0;
     String word[]=new String[100000];
  int sum[]=new int[100000];
  String hang[]=new String[1000];
  List<String> list;
  String w;
 int i=0;
    try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw 
        /* 读入TXT文件 */ 
        //String pathname = "D:\\eclipse\\workspace\\most\\src\\word\\b.txt"; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径 
        //File filename = new File(pathname); // 要读取以上路径的input。txt文件 
        InputStreamReader reader = new InputStreamReader( 
                new FileInputStream(file));
        BufferedReader br = new BufferedReader(reader); 
        String line = ""; 
        line = br.readLine(); 
        while (line != null) { 
         
         StringTokenizer st2 = new StringTokenizer(line, ",,., ,!,?,“,”,‘,-,'");
          i=0;
            while (st2.hasMoreElements()) {
             hang[i]=String.valueOf(st2.nextElement());
             
             hang[i]=hang[i].toLowerCase();
             m++;
              list = Arrays.asList(word);
              flag = list.indexOf(hang[i]);
             if(flag==-1)
             {
              word[n]=hang[i];
              sum[n]++;
              n++;
             }
             else
             {
              sum[flag]++;
             }
             
             i++;
            }
          
         
         
            line = br.readLine(); // 一次读入一行数据
        } 
      
    } catch (Exception e) { 
        e.printStackTrace(); 
    }
   
    int ma=0;
    int biao=0;
    for(int j=0;j<n-1;j++)
    {
     ma=sum[j];
     biao=j;
     w=word[j];
     for(int k=j+1;k<n;k++)
     {
      if(ma<sum[k])
      {
       ma=sum[k];
       biao=k;
      }
     }
     sum[biao]=sum[j];
     sum[j]=ma;
     word[j]=word[biao];
     word[biao]=w;
    }
  
  
    for(int j=0;j<n;j++)
    {
     System.out.println(sum[j]);
     System.out.println(word[j]);
    }
 }
 else
 {
  File[] f1 = file.listFiles();
  for(File x:f1)
  {
   getsize(x);
  }
  
 }
}  
    public static void main(String args[]) { 
     Demo t=new Demo();
     t.getsize(new File("E:\\新建文件夹"));
      
    } 
}

关于TXT文件中英文单词出现频率排序问题的更多相关文章

  1. 关于TXT文件中英文字母出现频率排序问题

    题目要求: 输出某个英文文本文件中 26 字母出现的频率,由高到低排列,并显示字母出现的百分比,精确到小数点后面两位. 源码: package demo; import java.io.File;  ...

  2. 文件内容统计:对任意给定的.txt文件进行内容的字符数、行数、单词数进行统计

    项目源码地址:https://gitee.com/xjtsh/projects 功能实现: wc.exe -c file.c     //返回文件 file.c 的字符数 wc.exe -w file ...

  3. C++读取文件统计单词个数及频率

    1.Github链接 GitHub链接地址https://github.com/Zzwenm/PersonProject-C2 2.PSP表格 PSP2.1 Personal Software Pro ...

  4. java算法面试题:编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。

    package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...

  5. 通过R语言统计考研英语(二)单词出现频率

    通过R语言统计考研英语(二)单词出现频率 大家对英语考试并不陌生,首先是背单词,就是所谓的高频词汇.厚厚的一本单词,真的看的头大.最近结合自己刚学的R语言,为年底的考研做准备,想统计一下最近考研英语( ...

  6. 读取JDK API文档,并根据单词出现频率排序

    1,拿到 API 文档 登录 https://docs.oracle.com/javase/8/docs/api/ , 选中特定的类,然后 copy 其中的内容, 放入 TXT 文件中 , 2,读取T ...

  7. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  8. 网站SEO优化之Robots.txt文件写法。

    作为网站开发者或网站管理员一定知道网站对搜索引擎的优化有多重要,好的网站不仅要有漂亮的界面,良好的用户体验,还要有较高的更新频率.要被百度.google这样的搜索引擎大量收录,才能增加网站展示量,访问 ...

  9. C++读写TXT文件中的string或者int型数据以及string流的用法

    对文件的读写操作是我们在做项目时经常用到的,在网上看了很多博客,结合自身的项目经验总结了一下,因此写了这篇博客,有些地方可能直接从别的博客中复制过来,但是都会注明出处. 一.文件的输入输出 fstre ...

随机推荐

  1. 1.0 Jmeter 安装运行

    1.百度搜索JDK进行下载JDK安装与环境变量配置http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html ---- 在JDK安装完 ...

  2. 1.1Jmeter学习网站

    在网上找到一些关于Jmeter学习的博客等,在此标记 一. chinaunix的一篇博客,讲的蛮详细的 http://blog.chinaunix.net/uid/26884465/cid-16819 ...

  3. 09day vi命令详解

    vi有三种模式(互相切换) 1. 命令模式 2. 插入模式(编辑模式) 3. 低行模式 三种模式的切换方法: 使用技巧 vi 文件信息 i --- 进入编辑模式 esc --- 退出编辑模式 :wq ...

  4. 使用Newtonsoft序列化对象,实现深拷贝

    工作记录 深拷贝:全新创建一个对象,值与复制对象一致,两个对象互不相关,修改一个对象不会影响到另一个对象 浅拷贝:全新创建一个对象,值与复制对象一致,两个对象相关,修改一个对象影响到另一个对象 在工作 ...

  5. PHP通过thrift2访问HBASE

    前一段时间需要在网页上显示HBASE查询的结果,考虑用PHP来实现,在网上搜了一下,普遍都是用thrift作为接口来实现的.​ 参考博文:​ http://www.cnblogs.com/scotom ...

  6. python连接oracle数据库报错"DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "解决方案

    操作系统,python3.5, oracle_11, 均为64位:plsql 正常连接. 也顺利安装了cx_oracle 6.3,但是python进行连接的时候就会报错"DatabaseEr ...

  7. 解决MinGW运行时提示丢失libgmp-10.dll

    如何解决刚安装的MinGW提示"丢失xxx.dll" 解决方案: 1.配置环境变量,出现这种问题的主要原因是因为没配置环境变量,网上的大多数解决方案也是基于这个的. 2.安装包损坏 ...

  8. ubuntu14.04安装好Hadoo之后接着安装hbase和介绍常用命令

    1.解压 tar -zxvf hbase-1.0.0-bin.tar.gzsudo mv hbase-1.0.0 /opt/hbasecd /optsudo chmod -R 775 hbase 2. ...

  9. STM32F103之GPIO学习记录

    9 GPIO:通用I/O口 AFIO:可供选择的I/O口 9.1 GPIO功能描述 每一个通用的I/O口都有: 两个32位的配置寄存器(配置寄存器低和配置寄存器高): 两个32位的数据寄存器(输入数据 ...

  10. opencv:图像直方图相似性比较

    void hist_compare(Mat src1, Mat src2) { int histSize[] = { 256, 256, 256 }; int channels[] = { 0, 1, ...