Java 使用字符串[]args作为用户输入,如果未提供输入,则设置值

Java 使用字符串[]args作为用户输入,如果未提供输入,则设置值,java,args,Java,Args,如果程序依赖命令行参数作为用户输入,例如要求订购衬衫数量、衬衫尺寸和颜色选择。我知道这些值将存储在args[0]、args[1]和args[2]中。但是,如果我希望按该顺序接收这些值,那么如何管理用户没有给出一个或多个参数的情况呢。例如,如果没有给出要订购的衬衫数量,是否有一种方法可以将该值初始化为默认值1?对于可选的命令行参数,有两种常见的方法 使用类似于javamyclass-q5的标志。单独解析这些类型的参数是一项挑战。我建议使用像这样的图书馆 将可选参数放在末尾。这样,如果用户只提供两个

如果程序依赖命令行参数作为用户输入,例如要求订购衬衫数量、衬衫尺寸和颜色选择。我知道这些值将存储在
args[0]
args[1]
args[2]
中。但是,如果我希望按该顺序接收这些值,那么如何管理用户没有给出一个或多个参数的情况呢。例如,如果没有给出要订购的衬衫数量,是否有一种方法可以将该值初始化为默认值1?

对于可选的命令行参数,有两种常见的方法

  • 使用类似于
    javamyclass-q5
    的标志。单独解析这些类型的参数是一项挑战。我建议使用像这样的图书馆

  • 将可选参数放在末尾。这样,如果用户只提供两个参数,您就知道它们是大小和颜色


  • 命令行参数没有多少灵活性:环境将它们作为
    String[]
    数组与您通信,这意味着单个参数没有名称,只有索引

    您需要决定如何处理缺少一个或多个命令行参数的情况,但请记住,不可能在中间“跳过”参数:只要省略了一个参数,它总是后面的参数。例如,如果用户使用参数
    XXL绿色
    调用您的程序,这些参数将被放置在
    args[0]
    args[1]
    中,而
    args[2]
    将丢失;参数将不会放置在
    args[1]
    args[2]


    一个简单的选择是处理少于三个参数被指定为错误的情况。如果这不够灵活,您可以单独解析参数,并尝试推断它们的“含义”。例如,如果您在任何位置看到
    “S”
    “M”
    “L”
    “XL”
    、或
    “XXL”
    ,您的程序可能会将其视为大小的指示。

    我头脑中的一个窍门就是固定参数的长度,或者在有模式的情况下绕过它

    例如,您的示例大小始终是一个数字,因此您可以围绕参数循环,并将数字大小保留为您的
    长度。
    对于大小,您可以提示用户使用
    X、M、L、XL
    ,假设它的最大长度为两个字符,然后您可以再次循环参数并将其存储为
    大小。对于
    color
    可以将其设置为字符串并大于2个字符,如
    红色、绿色
    ,然后将其指定给
    color
    参数。如果您想更进一步,那么您可以将
    size
    的关键字保留为
    S、M、L、XXL、XL
    等中的一个,并在分配给
    color
    参数之前检查每个参数。
    无论哪种方式,您现在都可能已经明白了要点,如果有模式,请围绕参数进行游戏并分配。

    花点时间思考一下。假设您使用
    JavaMyClass Foo5L红色
    vs
    JavaMyClass M蓝色
    。您将如何确定遗漏的数量?