不知道如何检查在 java 中的 CLI 中传递参数时的参数数量?

问题描述 投票:0回答:1

一个简单的程序,它从命令行获取 2 个参数,如果它们是 2,它只是将它们相乘,否则会抛出我的自定义异常 顺便说一句,这是我第一次使用 stackoverflow,所以请忽略愚蠢的错误

import java.util.*;
class MyException extends Exception
{
    public String toString()
    {
        return "Something Went Wrong :(";
    }
}
class ExceptionCLI
{
    public static void main(String args[])
        {
            int A = Integer.parseInt(args[0]);
            int B = Integer.parseInt(args[1]);
            
            
            if() **//Missing Condition what should i write ?? args[].length < 2 ?? it doesnt work**
            {
                try
                {
                    throw new MyException();
                }
                catch(Exception e)
                {
                    System.out.println(e.toString());
                }
            }
            else
            {
                System.out.println("Result: "+A*B);
            }
        }
}

尝试过: 1:

args[].length
2:
int len = args[].length
我在java方面没有那么丰富的经验,所以我不知道还有什么其他方法可以尝试 任何帮助或建议将不胜感激。

java command-line-interface
1个回答
0
投票

问题不在于 CLI,而在于理解 Java 中的数组。

此示例的一些数组基础知识:

  • String [] args
    将变量
    args
    声明为
    String
    的数组。
  • String args []
    是将变量
    args
    声明为
    String
    数组的另一种方法。
  • args[]
    本身没有任何意义。
  • 所以,
    args
    是一个变量。它的类型是
    String []
    ,即
    String
    的数组。
  • args[n]
    是该数组的一个元素,即在本例中是一个单独的
    String
    • n
      可以是常量、变量或表达式。
    • n
      必须可解析为
      int
      类型。
  • 在Java中,数组是引用类型。它具有
    Object
    的属性和方法。此外,它还有一个
    length
    属性。
  • args
    是此处参考文献的名称。
  • length
    属性的访问方式如下:
    args.length
    • 示例: if (args.length > 100) { System.out.println("foo"); }

其他评论:

  • 在尝试解析元素之前检查
    args
    的长度。可能是 args
     是空的。也就是说,
    args.length
     可能为零。如果是这样的话,
    args[0]
    就不存在了。
  • 如果在解析元素之前不检查长度,则应该做好
  • ArrayIndexOutOfBoundsException
    的准备。
  • 如果元素存在,但不代表整数,则尝试解析可能会抛出
  • NumberFormatException
© www.soinside.com 2019 - 2024. All rights reserved.