packagetest;importjava.io.File;importjava.io.InputStreamReader;importjava.io.Reader;importjava.nio.file.FileVisitResult;importjava.nio.file.Files;importjava.nio.file.Path;importjava.nio.file.Paths;importjava.nio.file.SimpleFileVisitor;importjava.nio.file.attribute.BasicFileAttributes;importjava.util.Scanner;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;public classWordCounting {private static String str="";private static Scanner sc=newScanner(System.in);private static BufferedReader br=null;private static String a[]=new String[1000000];private static String c[]=new String[10000000];private static int b[]=new int[1000000];private static int length=0;private static int l=0;private static int n=0;private static int j=0;public static void storage() throws IOException {//将单词存到数组a
{ while(str!=null) {int i=0;
str=str.toLowerCase(); //将大写改为小写
for(i=0;i96&&str.charAt(i)<123)) {//判断是否为字母
a[j]=a[j]+str.charAt(i);
}if(str.charAt(i)==' '||str.charAt(i)==','||str.charAt(i)=='.') {//一个单词结尾的条件空格,或者句号,或者逗号
if(!a[j].equals("")) {//不为空
j=j+1;
a[j]="";
}
}
}
str=br.readLine();//读取新的一行内容
}
length=j;
}
}public static void show() {//显示
for(int k=0;k
System.out.print(c[k]+"\t"+b[k]+" ");
System.out.printf("%.2f",(double)b[k]/l*100);//格式化的输出
System.out.print("%");//输出百分号
System.out.println("");
}
}public static void Sorting() {//排序
int t3=0;int t2=0;
String sr="";for(int i=0;i
t3=i;for(int j=i+1;j
t3=j;
}
}if(t3!=i) {
t2=b[i];
b[i]=b[t3];
b[t3]=t2;
sr=c[i];
c[i]=c[t3];
c[t3]=sr;
}
}
}public static void deleteOverlap(){//去重
for(int k=0;k
b[k]=0;
}
c[0]=a[0];int tt=1;
Boolean rt=true;for(int i=1;i
rt=false;for(int j=0;j
rt=true;break;
}
}if(!rt) {
c[tt]=a[i];
tt++;
}
}
l=tt;for(int i=0;i
b[i]++;
}
}
}
}public static void Readfile() {//读取文件
File file=new File("C:\\Users\\lenovo\\Desktop\\Harry Potter and the Sorcerer's Stone.txt");try{
InputStreamReader read= new InputStreamReader(new FileInputStream(file),"UTF-8");
br=newBufferedReader(read);
str=br.readLine();
storage();
br.close();
read.close();
}catch(IOException e) {
System.out.println("读取失败!");
e.printStackTrace();
}
}public static void main(String[] args) throwsIOException {
System.out.println("请输入需要统计的个数:");
n=sc.nextInt();
a[0]="";
Readfile();
deleteOverlap();
Sorting();
show();
}
}packagetest;importjava.io.File;importjava.io.InputStreamReader;importjava.io.Reader;importjava.nio.file.FileVisitResult;importjava.nio.file.Files;importjava.nio.file.Path;importjava.nio.file.Paths;importjava.nio.file.SimpleFileVisitor;importjava.nio.file.attribute.BasicFileAttributes;importjava.util.Scanner;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;public classWordCounting {private static String str="";private static Scanner sc=newScanner(System.in);private static BufferedReader br=null;private static String a[]=new String[1000000];private static String c[]=new String[10000000];private static int b[]=new int[1000000];private static int length=0;private static int l=0;private static int n=0;private static int j=0;public static void storage() throws IOException {//将单词存到数组a
{ while(str!=null) {int i=0;
str=str.toLowerCase(); //将大写改为小写
for(i=0;i96&&str.charAt(i)<123)) {//判断是否为字母
a[j]=a[j]+str.charAt(i);
}if(str.charAt(i)==' '||str.charAt(i)==','||str.charAt(i)=='.') {//一个单词结尾的条件空格,或者句号,或者逗号
if(!a[j].equals("")) {//不为空
j=j+1;
a[j]="";
}
}
}
str=br.readLine();//读取新的一行内容
}
length=j;
}
}public static void show() {//显示
for(int k=0;k
System.out.print(c[k]+"\t"+b[k]+" ");
System.out.printf("%.2f",(double)b[k]/l*100);//格式化的输出
System.out.print("%");//输出百分号
System.out.println("");
}
}public static void Sorting() {//排序
int t3=0;int t2=0;
String sr="";for(int i=0;i
t3=i;for(int j=i+1;j
t3=j;
}
}if(t3!=i) {
t2=b[i];
b[i]=b[t3];
b[t3]=t2;
sr=c[i];
c[i]=c[t3];
c[t3]=sr;
}
}
}public static void deleteOverlap(){//去重
for(int k=0;k
b[k]=0;
}
c[0]=a[0];int tt=1;
Boolean rt=true;for(int i=1;i
rt=false;for(int j=0;j
rt=true;break;
}
}if(!rt) {
c[tt]=a[i];
tt++;
}
}
l=tt;for(int i=0;i
b[i]++;
}
}
}
}public static void Readfile() {//读取文件
File file=new File("C:\\Users\\lenovo\\Desktop\\Harry Potter and the Sorcerer's Stone.txt");try{
InputStreamReader read= new InputStreamReader(new FileInputStream(file),"UTF-8");
br=newBufferedReader(read);
str=br.readLine();
storage();
br.close();
read.close();
}catch(IOException e) {
System.out.println("读取失败!");
e.printStackTrace();
}
}public static void main(String[] args) throwsIOException {
System.out.println("请输入需要统计的个数:");
n=sc.nextInt();
a[0]="";
Readfile();
deleteOverlap();
Sorting();
show();
}
}