java遍历统计一个文件夹中所有文件单词出现次数
思路就是通过递归进行文件遍历,把所有文件夹中的非目录文件都遍历一遍,并判断其中读取到的字符串是不是单词,并对单词进行记录和计数,并在最后进行排序输出,下面是代码:
package word; import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern; public class word { static int[] num=new int[10000];//记录相应单词数量
static String [] wor=new String[10000];//记录单词种类
static int numb=0;//单词种类个数
static double x=0;
static Scanner in;
static String s;
static Scanner input=new Scanner(System.in);
public static void main(String[] args) throws FileNotFoundException {
// TODO 自动生成的方法存根 int i=0,w=0; String s; String path = "C:\\file"; //要遍历的路径
File file = new File(path); //获取其file对象
fil(file); int[] re=new int[100000];//用于记录num[]中各个数字对应的单词在wor[]中的位置 int t;
for(i=0;i<numb;i++)
{
re[i]=i;
} for(i=0;i<numb;i++)
{
for(w=i;w<numb;w++)
{
if(num[i]<num[w]) {
t=num[i];
num[i]=num[w];
num[w]=t;
t=re[i];
re[i]=re[w];
re[w]=t; }
} }
for(i=1;i<numb;i++)
{
if(num[i-1]==num[i]) {
if(wor[re[i]].compareToIgnoreCase(wor[re[i-1]])<0) {
s=wor[re[i]];
wor[re[i]]=wor[re[i-1]];
wor[re[i-1]]=s;
w=num[i];
num[i]=num[i-1];
num[i-1]=w;
}
}
}
for(i=0;i<numb;i++)
{
System.out.println(wor[re[i]]+":"+num[i]); } }
public static void rest()
{
numb=0;x=0; }
public static void fil(File a) throws FileNotFoundException
{
String path =a.getPath();
File file = new File(path); //获取其file对象
File[] fs = file.listFiles(); //遍历path下的文件和目录,放在File数组中
for(File f:fs){ //遍历File[]数组
if(!f.isDirectory()) //若非目录(即文件),对其进行遍历
in=new Scanner(f);
else { fil(f); } while(in.hasNext())
{
s=in.next();
wordcheck(s); }}
}
public static void wordcheck(String s)
{ int i,w=1;
for(i=0;i<numb;i++)
{
if(s.equalsIgnoreCase(wor[i])) {w=0;
num[i]++;x++; break;}
}
if(w==1) {
Pattern pa = Pattern.compile("[a-zA-Z]+"); //利用正则表达式判断是不是单词
Matcher isNum = pa.matcher(s);
if (isNum.matches()) {
wor[numb]=s;
num[i]=1;
numb++;x++;
} } }
}
java遍历统计一个文件夹中所有文件单词出现次数的更多相关文章
- java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数
File 递归删除文件夹中所有文件文件夹 package com.swift.kuozhan; import java.io.File; import java.util.Scanner; /*键盘录 ...
- python 遍历文件夹中所有文件
'''使用walk方法递归遍历目录文件,walk方法会返回一个三元组,分别是root.dirs和files. 其中root是当前正在遍历的目录路径:dirs是一个列表,包含当前正在遍历的目录下所有的子 ...
- python遍历文件夹中所有文件夹和文件,os.walk
python中可以用os.walk来遍历某个文件夹中所有文件夹和文件. 例1: import os filePath = 'C:/Users/admin/Desktop/img' for dirpat ...
- 【转载】C#代码开发过程中如何快速比较两个文件夹中的文件的异同
在日常的使用电脑的过程中,有时候我们需要比较两个文件夹,查找出两个文件夹中不同的文件以及文件中不同的内容信息,进行内容的校对以及合并等操作.其实使用Beyond Compare软件即可轻松比较,Bey ...
- 基于Python——实现两个文件夹中的文件拷贝
[背景]当复制一个文件夹中的某文件到另一个文件夹中时是一件很容易的事情,可是如果存在很多文件夹中的文件需要一一拷贝,就会变的很繁琐,稍有不慎就会遗漏,今天就用Python来解决这个问题—— [代码实现 ...
- C++获取文件夹中所有文件
获取文件夹中的文件,用到过很多次,每次用的时候都要去查下,很烦,所以想自己写下,当然,借鉴了很多其他大佬的博客 主要实现的函数,如下: void getFiles( string path, vect ...
- Python列出文件夹中的文件
几乎所有的关于操作系统的内容可以在python 官方文档中找到:https://docs.python.org/3/library/os.html#module-os 其中os.path被单独列出:h ...
- cocos项目导入其它源文件时加入依赖库时,头文件提示找不到文件夹中的文件
cocos项目导入其它源文件时加入依赖库时,头文件提示找不到文件夹中的文件解决方法: 选择项目属性->c/c++->常规,在附加包括项目中加上对应的文件夹 cocos test项目的库(所 ...
- python将test01文件夹中的文件剪切到test02文件夹中
将test01文件夹中的文件剪切到test02文件夹中 import shutil import os def remove_file(old_path, new_path): print(old_p ...
随机推荐
- Net Core 中WebAPI有关 Session的设置,及获取
步骤一: 在Startup 文件中做相应的设置 ConfigureServices方法里添加 //ConfigureServices添加: services.AddSession(options =& ...
- javascript Worker子线程
main.js code: //创建 var worker = new Worker("./worker.js"); //发送 worker.postMessage(1); //接 ...
- 如何在 CentOS 7 / RHEL 7 终端服务器上安装 KVM
如何在 CnetOS 7 或 RHEL 7(Red Hat 企业版 Linux)服务器上安装和配置 KVM(基于内核的虚拟机)?如何在 CentOS 7 上设置 KVM 并使用云镜像 / cloud- ...
- jdk升级后Eclipse无法启动问题
overview: 今日安装jdk11,设置好环境变量后,eclipse无法运行,由于项目依赖原因,不想更新eclipse的版本. 我的jdk是1.8,在将环境变量设回1.8后依然无法运行.在多次尝试 ...
- 安全扫描工具Acunetix即AWVS_13.x系列破解版Linux & Windows
本站所提供工具仅供技术学习交流.请勿用于非法行为.否则后果自负. Acunetix,自动化网络应用安全软件的先驱,已经宣布发布Acunetix第13版.新版本提供了一个改进的用户界面,并引入了创新,如 ...
- DotNet 源码学习——QUEUE
1.Queue声明创建对象.(Queue为泛型对象.) public class Queue<T> :IEnumerable<T>,System.Collections.ICo ...
- ASP .NET CORE 源码地址
ASP .NET CORE 源码地址:https://github.com/dotnet/ 下拉可以查找相应的源码信息, 例如:查找 ASP .NET CORE Microsoft.Extension ...
- Android中点击按钮获取string.xml中内容并弹窗提示
场景 AndroidStudio跑起来第一个App时新手遇到的那些坑: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103797 ...
- nginx 修改上传文件的大小限制
nginx默认的上传文件大小是有限制的,一般为2MB,如果你要上传的文件超出了这个值,将可能上传失败.修改的地方有: 1. php.ini: upload_max_filesize = 8M 2. ...
- 5种PHP生成图片验证码实例
5种PHP生成图片验证码实例,包括数字验证码.数字+字母验证码.中文验证码.仿google验证码和算术验证码,PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保存在Session ...