Java 查找最频繁的号码

Java 查找最频繁的号码,java,Java,我是Java新手。这是我的家庭作业,但我修不好。有人想帮我吗?谢谢 此程序将获取运行程序时在命令行中输入的单个数字列表,并查找输入频率最高的数字 这是我的密码 public class MostFrequent{ public static void main(String[] args){ int num = 0; int []freq= new int[10];//0-9 for (int i=0; i<args.length;

我是Java新手。这是我的家庭作业,但我修不好。有人想帮我吗?谢谢 此程序将获取运行程序时在命令行中输入的单个数字列表,并查找输入频率最高的数字

这是我的密码

public class MostFrequent{
    public static void main(String[] args){
        int num = 0;
        int []freq= new int[10];//0-9
        for (int i=0; i<args.length; i++){
            try{
                num = Integer.parseInt(args[i]);
                freq[num]++;
            }
            catch (NumberFormatException nfe){
            }
        }
        int max= 0, j;
        for (j=1; j<args.length; j++){
            while(freq[j]>freq[max]){
                max=j;
            }
        }
        System.out.println("The digit that appears most frequently is " + max);
    }
}
公共类最频繁{
公共静态void main(字符串[]args){
int num=0;
int[]freq=new int[10];//0-9

对于(int i=0;i,您的代码编译和运行良好。我和评论员一样,非常确定您的问题在于您没有传递任何参数

假设您正在使用命令行:

String[]args是在运行时传入的参数列表,如下所示

爪哇最常见的4 6 3 6 7 5 2 4 6 8 4 3 5 6


我想知道,您认为您扫描的是什么数字数组?

您的代码工作正常,您可以使频率计数更简单,如下所示:

public class MostFrequent{
    public static void main(String[] args) {
        int[] freq= new int[10];//0-9
        for (String arg : args) {
            try {
                freq[Integer.parseInt(arg)]++;
            }
            catch (NumberFormatException nfe) {
            }
        }
        int max= 0, j;
        for (j=1; j<args.length; j++) {
            while(freq[j]>freq[max]) {
                max=j;
            }
        }
        System.out.println("The digit that appears most frequently is " + max);
    }
}
公共类最频繁{
公共静态void main(字符串[]args){
int[]freq=new int[10];//0-9
for(字符串arg:args){
试一试{
freq[Integer.parseInt(arg)]++;
}
捕获(NumberFormatException nfe){
}
}
int max=0,j;
对于(j=1;jfreq[max]){
max=j;
}
}
System.out.println(“最常出现的数字是“+max”);
}
}

有些人不喜欢基于异常的预编程,但在这种情况下,检查用户输入的简单性和可读性远远超过性能问题。

这有什么问题吗?作为旁注:您可能不应该接受这样的异常。
应该是
如果
,即使在这种情况下,它确实是e同样的事情;-)当我运行它时,它显示为0。我不能在代码中输入数字。我需要在运行程序时在命令行中输入数字,并找到输入频率最高的数字。我真的不知道怎么做。我试了很多次。@Jasonzsjy,你真的应该在问题中添加该注释。