使用String [] args作为用户输入,如果没有给出输入则设置值

时间:2018-03-21 18:23:22

标签: java args

如果程序依赖于命令行参数作为用户输入,例如要求订购一定数量的衬衫,衬衫尺寸和颜色选择。我知道这些值会存储在https://cdn.bootcss.com/typed.js/1.1.4/typed.min.jsargs[0]args[1]中。但是,如果我希望按照该顺序接收这些值,我将如何管理用户未提供其中一个或多个参数的情况。就像没有给出订购衬衫的数量一样,有没有办法可以将该值初始化为默认值1?

3 个答案:

答案 0 :(得分:1)

可选命令行参数有两种常用方法

  1. 使用java MyClass -q5之类的标记。解析这些论点对你自己来说很难。我建议使用commons-cli等库。

  2. 将可选参数放在最后。这样,如果用户只提供2个参数,您就知道这些是大小和颜色。

答案 1 :(得分:1)

命令行参数的灵活性很小:环境将它们作为String[]数组传达给您,这意味着单个参数没有名称,只有索引。

当缺少一个或多个命令行参数时,您需要决定如何处理案例,但请记住,不能跳过"跳过"中间的参数:每当省略参数时,它始终是尾随参数。例如,如果用户使用参数XXL GREEN调用您的程序,则会将其放在args[0]args[1]中,而args[2]则会丢失;参数不会放在args[1]args[2]

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

答案 2 :(得分:0)

如果有一种模式,我的头脑中的一个技巧就是修正参数的长度或者围绕它进行游戏。

对于您的示例大小始终是一个数字,因此您可以循环参数并将数字保留为length。 对于大小,您可以提示用户使用X,M,L,XL,所以假设它最多有两个字符长度,那么您可以再次循环参数并将其存储为size。对于color,您可以将其设置为字符串且大于2个字符,例如RED, GREEN,并将其分配给您的color参数。如果您想要更进一步,那么您可以保留size的关键字为S,M,L,XXL,XL等之一,并在分配给color参数之前检查每个参数。 无论哪种方式,你现在可能已经明白了这一点,如果有一个模式并且分配它,请参与争论。