【问题标题】:Check the number of arguments in a java program检查java程序中的参数数量
【发布时间】:2020-07-27 12:17:03
【问题描述】:

我有一个 java 程序,它有两个整数作为输入,并且必须执行所有四个数学运算。

同时,我通过终端运行我的 Java 程序,以便将两个整数作为参数传递。但是,每当我尝试检查传递的参数的有效性时,我都会收到一条消息:

(例如,如果我运行:Java Example --> 没有任何参数,我会收到以下消息)

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at Example.main(Example.java:38)

我的代码如下:

public class Example {
    public void Sum(int a, int b) {
        int sum = a + b;
        System.out.println("The sum:" + sum);
    }

    public void Sub(int a, int b) {
        int sub = a - b;
        System.out.println("The subtraction is:" + sub);
    }

    public void Mul(int a, int b) {
        int mul = a * b;
        System.out.println("The multiplication is:" + mul);
    }

    public void Div(int a, int b) {
        try {
            int div = a / b;
            System.out.println("The division is:" + div);
        } catch (ArithmeticException e) {
            System.out.println("You can't divide a number by 0");
        }
    }

    public static void main(String[] args) {
        Example c = new Example();
        int count = args.length;
        int x = Integer.parseInt(args[0]);
        int y = Integer.parseInt(args[1]);
        int z = Integer.parseInt(args[1]);

        if (count == 0 || count > 2 || count == 1) {
            System.out.println("Not valid number of arguments try again. You entered " + count + " arguments");
        } else {
            c.Sum(x, y);
            c.Sub(x, y);
            c.Mul(x, y);
            c.Div(x, y);
            System.out.println("Arguments:" + count);
            return;
        }
    }
}

我在终端上写的是:例如Java 示例 2 3

【问题讨论】:

    标签: java exception terminal command-line-arguments


    【解决方案1】:

    在尝试访问args[0]args[1] 之前,您需要确保args[] 的大小等于2。更改main如下:

    public static void main(String[] args) {
        Example c = new Example();
        int count = args.length;
        if (count == 2) {
            int x = Integer.parseInt(args[0]);
            int y = Integer.parseInt(args[1]);
    
            c.Sum(x, y);
            c.Sub(x, y);
            c.Mul(x, y);
            c.Div(x, y);
            System.out.println("Arguments:" + count);
            return;
        } else {
            System.out.println("Not valid number of arguments try again. You entered " + count + " arguments");
        }
    }
    

    附带说明,您应该关注Java naming conventions,例如函数的名称应为sumsubmuldiv 而不是SumSubMulDiv

    【讨论】:

    • java Example 10 20 一样称呼它。请注意,1020 在您的程序中将分别被视为 args[0]args[1]。如有任何问题/疑问,请随时发表评论。
    • 非常感谢它现在有效,这是我的错误:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 2017-05-03
    • 2016-05-31
    • 1970-01-01
    相关资源
    最近更新 更多