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+" %");
            }
    }
    }

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

  • 相关阅读:
    Linux防火墙开放某端口号
    MySQL的权限管理
    Linux安装Node.js
    Eclipse上传新项目到GitLab
    Linux安装Nexus
    Linux安装中文字体_宋体
    Linux用户管理
    Linux安装MySQL_5.6
    reduce基本用法,js实现分组
    js 数字格式化
  • 原文地址:https://www.cnblogs.com/dazhi151/p/11794579.html
Copyright © 2011-2022 走看看