单词统计

用户需求:

英语的26 个字母的频率在一本小说中是如何分布的?

某类型文章中常出现的单词是什么?

《哈利波特》 中最常用的短语是什么,等等。

我们要用程序来解决这个问题,毕竟我们是软工人。

 

 

public class test{

/*
* 读取指定路径下的文件名和目录名
*/
public void getFileList() throws IOException {
System.out.println("请输入路径");
Scanner scan=new Scanner(System.in);
String a=scan.next();
File file = new File(a);

File[] fileList = file.listFiles();

for (int i1 = 0; i1 < fileList.length; i1++) {
if (fileList[i1].isFile()) {
String fileName = fileList[i1].getName();
if(fileName.indexOf(".txt")!=-1)
{
Word word=new Word(); //单词的链头
Word lian,xin;
String str="";
String S=a+"\\"+fileName;
System.out.println(S);
FileReader f=new FileReader(S); 
char[] c=new char[1]; 
int b=0;
boolean exist=false; 
while((b=f.read(c))!=-1)
{
if(String.valueOf(c).equals("\r")||String.valueOf(c).equals("\n")||String.valueOf(c).equals(" ")||String.valueOf(c).equals(",")||String.valueOf(c).equals(".")||String.valueOf(c).equals("\"")||String.valueOf(c).equals("'"))
{
lian=word;
while(lian!=null)
{
if(lian.value.equalsIgnoreCase(str)) 
{
lian.geshu++;exist=true;break;
}
else
{
lian=lian.next;
}
}
if(exist==false) 
{
xin=new Word(str,1);
xin.next=word.next;
word.next=xin;
str="";
}
else
{
exist=false;
str="";
}
}
else //单词
{
str+=String.valueOf(c);
}
}

System.out.println("请输入您想查询的前几个出现此处最多的单词");
int N=scan.nextInt();
for(int i=1;i<=N;i++)
{
xin=new Word("",0);
lian=word.next;

while(lian!=null)
{
if(lian.geshu>xin.geshu)
{
xin=lian;
}
lian=lian.next;
}

System.out.println("第"+i+"个 :"+xin.value+"个数:"+xin.geshu);
lian=word;

while(lian.next!=null)
{
if(lian.next.value.equalsIgnoreCase(xin.value))
{
lian.next=lian.next.next;
break;
}
lian=lian.next;
}
}
}
System.out.println("文件:" + fileName);
}

}
}

}

 

转载于:https://www.cnblogs.com/muailiulan/p/11070714.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值