题目要求:

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

源码:

  

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. Vue.js 学习入门:介绍及安装

    Vue.js 是什么? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 ...

  2. 字符串类型:char,varchar,text,enum,set

    字符串类型 1.char 格式:char (M) 2.varchar 格式:varchar (M) [注意]M表示允许的字符串长度[65535].M表示的是字符数,而不是字节数.但是最大长度的使用是按 ...

  3. 连接mongodb服务

    语法:mongo.exe ip地址:端口号/数据库名(默认连接test) mongodb的默认端口号:27017 MongoDB内部结构   MongoDB MySQL 文档(Document) 记录 ...

  4. libcurl库的简介(一)

    一.Libcurl库简介 LibCurl是免费的客户端URL传输库,支持FTP,FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, FILE ,LDAP ...

  5. 蓝桥杯2016年省赛C/C++大学A组

    网友年龄 某君新认识一网友. 当问及年龄时,他的网友说: "我的年龄是个2位数,我比儿子大27岁, 如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄" 请你计算:网友的年龄一 ...

  6. C++模板详解(三):参数化声明详解

    在前两节中(C++模板详解(一).C++模板详解(二)),我们了解了函数模板和类模板的基本概念和使用方法.在这篇博文里,我们主要来详细地阐述一下"模板的参数声明"这个话题,并且也谈 ...

  7. 深度学习之反向传播算法(BP)代码实现

    反向传播算法实战 本文仅仅是反向传播算法的实现,不涉及公式推导,如果对反向传播算法公式推导不熟悉,强烈建议查看另一篇文章神经网络之反向传播算法(BP)公式推导(超详细) 我们将实现一个 4 层的全连接 ...

  8. rg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'TL_C_CONS_ExtendController':

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'TL_ ...

  9. 【PAT甲级】1075 PAT Judge (25 分)

    题意: 输入三个正整数N,K,M(N<=10000,K<=5,M<=100000),接着输入一行K个正整数表示该题满分,接着输入M行数据,每行包括学生的ID(五位整数1~N),题号和 ...

  10. Cocos2dLua3.17.2集成FairyGUI之 lua绑定 (二)

    上一章中将fairyGUI集成到C++工程,由于本人使用的是cocoslua,还需要将C++的绑定到lua中使用,本章记录一下过程,由于是过了一段时间,有些步骤忘记了,大概记录一下,诸位大大做个临时参 ...