java遍历统计一个文件夹中所有文件单词出现次数

时间:2019-11-10
本文章向大家介绍java遍历统计一个文件夹中所有文件单词出现次数,主要包括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++; } } } }

原文地址:https://www.cnblogs.com/liuleliu/p/11830566.html