统计英文文本文件出现次数最多的单词

源代码:

package 统计英文文本文件出现次数最多的单词;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
class zimu{
String name;
int num;
zimu(){
name=null;
num=-1;
}
}
public class Tongji {
public static void main(String[] args) throws IOException {
File file = new File("yingyuwenzhang.txt");//定义一个file对象,用来初始化FileReader
FileReader reader = new FileReader(file);//定义一个fileReader对象,用来初始化BufferedReader
BufferedReader bReader = new BufferedReader(reader);//new一个BufferedReader对象,将文件内容读取到缓存
StringBuilder sb = new StringBuilder();//定义一个字符串缓存,将字符串存放缓存中
String s = "";
while ((s =bReader.readLine()) != null) {//逐行读取文件内容,不读取换行符和末尾的空格
sb.append(s);//将读取的字符串添加换行符后累加存放在缓存中
}
bReader.close();
String str = sb.toString();
findEnglishNum(str);
}
public static void findEnglishNum(String text){
Scanner scan=new Scanner(System.in);
int i=0;
String[] array = {".",",","?","!"};
for (int i1 = 0; i1 < array.length; i1++) {
text = text.replace(array[i1]," ");
}
String[] textArray = text.split(" ");
// for(int i=0;i<textArray.length;i++)
// {
// System.out.println(textArray[i]);
// }
Map<String, Integer> map = new TreeMap<String, Integer>();
for (int i1 = 0; i1 < textArray.length; i1++) {
String key = textArray[i1];
//转为小写
String key_l = key.toLowerCase();
if(!"".equals(key_l)){
Integer num = map.get(key_l);
if(num == null || num == 0){
map.put(key_l, 1);
}else if(num > 0){
map.put(key_l, num+1);
}
}
}
for(String e:map.keySet()){
// System.out.println("单词:"+e+" 次数:"+map.get(e));
i++;
}
zimu [] z=new zimu[i];
for(int m=0;m<=i-1;m++) {
z[m]=new zimu();
}
int j=0;
for(String e:map.keySet()) {
if(z[j]!=null) {
z[j].name=e;
z[j].num=map.get(e);
}
j++;
}
for(int p=0;p<=i-1;p++) {
System.out.println("单词:"+z[p].name+" 次数:"+z[p].num);
}
zimu t=new zimu();
for(int m=0;m<=i-1;m++)
{
for(int n=m;n<=i-1;n++) {
if(z[m]!=null&&(z[m].num<z[n].num)) {
t=z[m];
z[m]=z[n];
z[n]=t;
}
}
}
System.out.println("请输入想要输出前几位次数较多的单词:");
int b=scan.nextInt();
for(int m=0;m<=b-1;m++) {
if(z[m]!=null) {
System.out.println("单词:"+z[m].name+" 次数:"+z[m].num);
}
}
}
}

实验总结:

待补充。

原文地址:https://www.cnblogs.com/ruangongyouxi/p/9775444.html

时间: 2024-11-13 01:52:31

统计英文文本文件出现次数最多的单词的相关文章

java语言 找出文章中出现次数最多的单词

package english; import java.io.File; import java.util.Scanner; import java.io.FileNotFoundException; import java.util.HashMap; import java.util.Iterator; import java.util.Set; public class Words { public static <type> void main (String[] args) thro

【出现次数最多的单词】

字典树== 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <string> 5 #define mem0(a) memset(a, 0, sizeof(a)) 6 using namespace std; 7 char str[200000]; 8 struct Trie { 9 int ch[200000][30]; 10 int val[200000];

统计字符串中出现次数最多的字母的次数,如果有多个重复的,都求出

package javastudy; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.TreeSet; public class Test1 { public static void main(String [] args){ String str = "aacdggdhrdhgsjrsovoiwimtcpiq"; new Test

利用shell脚本统计文件中出现次数最多的IP

比如有如下文件test.txt 1  134.102.173.43 2  134.102.173.43 3  134.102.171.42 4  134.102.170.9 要统计出现次数最多的IP可以利用以下shell脚本: cat test.txt | awk '{print $2}' | sort | uniq -c | sort -n -r | head -n 1 [原创]统计IP次数最多的 一条还是很常见,很实用,很简单的命令 netstat -ntu Active Internet

用map&lt;int,int&gt;关联容器以及迭代器实现遍历实现统计那个数出现次数最多

1 #include <iostream> 2 #include <map> 3 using namespace std; 4 int main() 5 { 6 map<int,int> m; 7 int n,v; 8 cin>>n; //这比如输入3 9 cout<<m[v]<<endl; 10 for(int i=0;i<n;i++){ //这里就循环三次 11 cin>>v; //这里就需要输入三个数 12 m

js 统计字符串中出现次数最多的字符?

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <script> 7 8 var s="aaaabbbbssssssss"; 9 var fres={}; //用来记录所有的字符的出现频次 10 var mostFr

算法训练 出现次数最多的整数

整数超出int范围了,改成字符型判断才过了. 时间限制:1.0s   内存限制:512.0MB 问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20.然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来.如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值. 输入格式:第一行是一个整数N,N? £? 20:接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列. 输出格式:输出只有一行,即出

20-算法训练 出现次数最多的整数

http://lx.lanqiao.cn/problem.page?gpid=T222 算法训练 出现次数最多的整数 时间限制:1.0s   内存限制:512.0MB 问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20.然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来.如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值. 输入格式:第一行是一个整数N,N? £? 20:接下来有N行,每一行

用java实现输出英文小说飘中出现次数最多的前N个单词(附:使用文件读写)

本文参考于:https://blog.csdn.net/u014204432/article/details/40348839 一.题目 输出单个文件(<飘> 英文版)中的前 N 个最常出现的英语单词,并将结果输入到文本文件中. 二.程序设计思路 1.首先将英文小说飘文件内容用文件读写方式读入StringBuffer中,然后一行一行读取并去掉句子和单词 间空格然后将StringBuffer转换成String,然后再将所有字符转化成小写字符,然后再将句子分割成单词并 存入字符数组. 2.随后遍历