题目要求:

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

源码:

  

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. win7安装composer(PHPStudy环境)

    好句没写博客园了,因为现在的公司就是写代码啥的,没有什么新的东西,但是光写代码也学到不少东西,因为本身太菜了,最近让做一个pdf表单的功能,首先得安装php-pdftk,看GitHub里面用compo ...

  2. 跨平台C++ IDE

    参考博客:https://blog.csdn.net/m0_37314675/article/details/77881287

  3. ISR吞吐性能问题

    ISR大致可以分几类: Cisco 860.880.890 ISR1800 (fixed).1800 (modular).2800.3800 Series ISR1900.2900.3800.3900 ...

  4. 关于为什么使用React新特性Hook的一些实践与浅见

    前言 关于Hook的定义官方文档是这么说的: Hook 是 React 16.8 的新增特性.它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性. 简单来说,就是在 ...

  5. Coursera-吴恩达机器学习课程笔记-Week1

    参考资料: 吴恩达教授机器学习课程 机器学习课程中文笔记 Week 1 一. 引言 机器学习模型可分为监督学习Superviese learning(每个数据集给出了正确的值)和无监督学习Unsupe ...

  6. linux中的diff命令

    今天在公司的代码中看到了一个用的不是很多的命令diff,一开始以为不是,后来一查发现还真有这个命令,有关它的详细资料在这个网址中查看[http://blog.chinaunix.net/uid-253 ...

  7. vue 实现简单的富文本编辑

    安装:npm install vue-quill-editor --save 安装Vue-Quill-Editor需要依赖: npm install quill --save 在入口文件main.js ...

  8. vue中使用vue-i18n 一个简单的国际化操作

    1.安装:npm install vue-i18n --save-dev 2.在main.js文件中引入: import VueI18n from 'vue-i18n' Vue.use(VueI18n ...

  9. Educational Codeforces Round 76 (Rated for Div. 2)E(最长上升子序列)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int a[200007],b[200007] ...

  10. TOMCAT中文信息乱码改为GBK

    # Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreements ...