java文件中字母出现的次数和百分比

主要是文件的读写。先在代码中导入文件。一行一行的进行数据的读入,通过“  ”空格对读入的信息进行分割,存入到数组里之后对于每一个单词的每一个字母进行区分存入相应的字母数组里。最后统计总的字母个数。应用于百分比。

package com.keshangone;
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 shouzimu {

    public static <type> void main (String[] args) throws FileNotFoundException {
        File file=new File("D:\\新建文件夹 (6)\\wen.txt");  
        if(!file.exists()){
            System.out.println("文件打开错误");
            return;
        }  
        
        int []num=new int[100];
        char []zimu=new char[100];
        char a='A';char b='a';
        for(int i=1;i<=52;i++)
        {
            if(i<=26)
                zimu[i]=a++;
            else
                zimu[i]=b++;
        }
        
        
        Scanner scanner=new Scanner(file);
        HashMap<String,Integer> hashMap=new HashMap<String,Integer>();
        while(scanner.hasNextLine()) {
            String line=scanner.nextLine();
            String[] lineWords=line.split(" ");          //       £    DZ ע ͵   
            for(int i=0;i<lineWords.length;i++) {
                
                for(int j=0;j<lineWords[i].length();j++)
                {
                    if(lineWords[i].charAt(j)>='A'&&lineWords[i].charAt(j)<='Z')
                        num[lineWords[i].charAt(j)-'A'+1]++;
                    else if(lineWords[i].charAt(j)>='a'&&lineWords[i].charAt(j)<='z')
                        num[lineWords[i].charAt(j)-'a'+1+24]++;
                }
            }
        }
        int sum=0;
        for(int i=1;i<=52;i++)
        {
            sum+=num[i];
        }
        for(int i=1;i<=52;i++)
        {
            for(int j=i+1;j<=52;j++)
            {
                if(num[i]<num[j])
                {
                    int t=num[i];
                    num[i]=num[j];
                    num[j]=t;
                    
                    char s=zimu[i];
                    zimu[i]=zimu[j];
                    zimu[j]=s;
                }
            }
        }
        System.out.println(sum);
        for(int i=1;i<=52;i++)
        {
            double ans=num[i]*1.0/sum;
            System.out.print(zimu[i]+":"+num[i]+"   ");
            String wen=String.format("%.2f", ans*100);
            System.out.println(wen+" %");
        }
}
}

最后将结果在窗体输出时也在文件里面写入。

猜你喜欢

转载自www.cnblogs.com/dazhi151/p/11794579.html