向java程序添加百分比的好方法是什么?

向java程序添加百分比的好方法是什么?,java,Java,我必须编写一个Java类来实现 我不知道如何做最后一部分:“对于每个数字,输出它作为第一个数字出现的百分比” 请帮我拿一下好吗 import java.io.FileNotFoundException; import java.util.Scanner; import java.io.File; public class BenfordLaw { public static void main(String[] args) { String[] arrayOfData = new

我必须编写一个Java类来实现

我不知道如何做最后一部分:“对于每个数字,输出它作为第一个数字出现的百分比”

请帮我拿一下好吗

import java.io.FileNotFoundException;

import java.util.Scanner;

import java.io.File;

public class BenfordLaw {
public static void main(String[] args) {

    String[] arrayOfData = new String[125];//Array creation
    // Read inn from the text file
    Scanner input = null;



    try {
        input = new Scanner(new File("worldPopulations.csv"));//instantiation

    } 
    catch (FileNotFoundException e) {
        System.out.println("File was not found");
        e.printStackTrace();
        System.exit(0);

    }//end try catch block
    input.nextLine(); //so we can skip it

    int index = 0;
    while(input.hasNextLine()) {
        String line = input.nextLine();
        //System.out.println(Line);
        arrayOfData[index] = line;
        index++;

    }
    input.close();

    int[] count = new int[9];//setting limit for array


    //Now process our data
    for(int i = 0; i < arrayOfData.length; i++) {
        System.out.println(arrayOfData[i]);//tests to see that we filled the array correctly
        //find the first char in our string
        char firstChar = arrayOfData[i].charAt(0);
        int firstDigit = firstChar - '0';
        System.out.println(firstDigit);
        count[firstDigit - 1]++;

    }//end arrayOfData.length

    //look at the count of each digit
    for (int i = 0; i < count.length; i++) {
        System.out.println("Number of digit" + (i+1) + "'s is " + count[i] );
    }



}//end main

}//end class
import java.io.FileNotFoundException;
导入java.util.Scanner;
导入java.io.File;
公营班福德法{
公共静态void main(字符串[]args){
String[]arrayOfData=新字符串[125];//数组创建
//从文本文件中读取
扫描仪输入=空;
试一试{
输入=新扫描仪(新文件(“worldpropulations.csv”);//实例化
} 
catch(filenotfounde异常){
System.out.println(“未找到文件”);
e、 printStackTrace();
系统出口(0);
}//末端试块
input.nextLine();//所以我们可以跳过它
int指数=0;
while(input.hasNextLine()){
String line=input.nextLine();
//系统输出打印项次(行);
arrayOfData[索引]=行;
索引++;
}
input.close();
int[]count=new int[9];//设置数组的限制
//现在处理我们的数据
for(int i=0;i
您非常接近解决方案。您有一个
计数
数组,该数组保存数据集中每个数字(1-9)作为第一个数字出现的次数。如果对这些计数求和(使用循环),则在计算每个数字的百分比(计数/总数*100)时,可以使用该总数作为分母


在进行除法之前,请确保将计数强制转换为浮点数,否则会从整数除法中得到截断的结果。

虽然对于新手来说可能有点难掌握,但对于Java 8 streams API来说,这种类型的问题似乎是一个很好的例子。只需要考虑一下。你应该在输入的文件中打印0~9的出现频率。什么这么难?我希望有一个映射,其中键是0-9,值是以该数字开头的输入值的数目。计算频率的方法是将以该数字开头的输入值的数量除以输入值的总数。@duffymo frequency不是一段时间内某件事情发生的次数吗?在这种情况下不是。如果你读100个数字,有多少以0,1,2,3…开头。。。?