题目要求:

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

源码:

  

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. 【音乐欣赏】《Forget》 - The Tech Thieves

    曲名:Forget 作者:The Tech Thieves [00:00.000] 作曲 : Mark Emmanuel/Alia May Plesa-Topham [00:01.000] 作词 : ...

  2. Linux 设备驱动IO操作

    每个外设都是通过读写其寄存器来控制的.外设寄存器也称为I/O端口,通常包括:控制寄存器.状态寄存器和数据寄存器三大类. 根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方 ...

  3. 洛谷 P2709 小B的询问(莫队)

    题目链接:https://www.luogu.com.cn/problem/P2709 这道题是模板莫队,然后$i$在$[l,r]$区间内的个数就是$vis[ ]$数组 $add()$和$del()$ ...

  4. angular iframe 加载失效解决办法已经自适应高度

    <iframe frameborder="0" id="iframe1"></iframe> $('#iframe1').attr('s ...

  5. 安装SQL Server 2014(Windows Server 2016)

    SQL Server 2014下载地址: 链接:https://pan.baidu.com/s/1FBkdCBeqaIcLMQnUmtfPwg    提取码:6y76 1.使用解压工具解压“cn_sq ...

  6. Win10安装.Net Framework4.7及更高版本

    问题描述 使用VS打开项目工程时,提示未安装.net framework4.7,但在启用或关闭windows功能里已经勾选了.net framework 4.7的全部功能. 直接从网上下载.net f ...

  7. Java进阶学习(3)之对象容器.小练习

    查找里程(10分) 题目内容: 下图为国内主要城市之间的公路里程: 你的程序要读入这样的一张表,然后,根据输入的两个城市的名称,给出这两个城市之间的里程. 注意:任何两个城市之间的里程都已经给出,不需 ...

  8. oracle关于sequence的个人理解

    oracle关于sequence的个人理解 1. sequence在多用户使用时的同步问题 个人感觉sequence是以连接(会话)为基础,类似于java中使用mysql的一个connection 网 ...

  9. 树莓派安装中文输入法Fcitx及Google拼音输入法

    本来是想给树莓派安装搜狗输入法的, 搜狗输入法Linux版:https://pinyin.sogou.com/linux/?r=pinyin 但是一直安装不成功,后面发现原来是系统架构不同导致的,搜狗 ...

  10. win10无法登陆SSG进行WEB UI管理

    故障描述:尝试登录SSG设备时,无法无法刷出页面,但是设备时可以ping通的(内部接口),可以Telnet上设备,就是无法通过网页登录. 深入测试:win7的系统可以登录,win10的不行,浏览器报协 ...