zoukankan      html  css  js  c++  java
  • 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+" %");
            }
    }
    }

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

  • 相关阅读:
    UVA 1386 Cellular Automaton
    ZOJ 3331 Process the Tasks
    CodeForces 650B Image Preview
    CodeForces 650A Watchmen
    CodeForces 651B Beautiful Paintings
    CodeForces 651A Joysticks
    HUST 1601 Shepherd
    HUST 1602 Substring
    HUST 1600 Lucky Numbers
    POJ 3991 Seinfeld
  • 原文地址:https://www.cnblogs.com/dazhi151/p/11794579.html
Copyright © 2011-2022 走看看