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 ...
随机推荐
- 我的一个配置redux(实现一次存储与调用方法)之旅
前言 : 今天呢,就配置一下redux,redux的重要性呢,就叭叭叭一大堆,什么也没有带着配置一次来的重要,因为许多涉及到的属性和方法,用法是活的,但格式是需要记忆的. 过程中不要嫌我唠叨,有的地方 ...
- javascript获取一个字符串的长度(包含中文)
/* getStrLen(str):获取一个字符串的长度(包含中文) */ function getStrLen(str){ let len = 0, i, c; for (i = 0; i < ...
- apache主配置文件httpd.conf详解
[root@lamp conf]# vi httpd.conf.bak 1 # 2 # This is the main Apache HTTP server configuration file. ...
- vscode+php+xdebug Time-out connecting to client (Waited: 200 ms)
如果php.ini配置没错,且端口无误,那么就可能是配置文件选错了. vscode里面有两个配置文件,一个是 Listen for xdebug ,一个是 Lanuch currently open ...
- python实现自动点赞
1.思路通过pyautogui可以实现鼠标点击.滚动鼠标.截屏等操作.由此功能实现打开页面,进行点赞.aircv可以从大图像获得小图像的位置,利用pyautogui截屏得到的图片,可以在页面获取到每一 ...
- MySQL索引优化深入
创建 test 测试表 CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `c1` varchar(10) DEFAULT N ...
- opencv —— approxPolyDP 生成逼近曲线
生成逼近曲线:approxPolyDP 函数 该函数采用 Douglas-Peucker 算法(也称迭代终点拟合算法).可以有效减少多边形曲线上点的数量,生成逼近曲线,简化后继操作. 经典的 Doug ...
- pom.xml 配置 收藏
本配置使用环境 jdk8 maven 3.6 C:\Users\Dell>java -version java version "1.8.0_162" Java(TM) ...
- <Wonder Woman> 摘抄
<Wonder Woman> My father told me once, he said,“ If you see something wrong happening in the w ...
- ts中的装饰器
// 装饰器一种特殊的类的声明, 扩展类.属性.方法. function logClass(params:any) { console.log(params); // params代表HttpClic ...