如果程序依赖于命令行参数作为用户输入,例如要求订购一定数量的衬衫,衬衫尺寸和颜色选择。我知道这些值会存储在https://cdn.bootcss.com/typed.js/1.1.4/typed.min.js
,args[0]
和args[1]
中。但是,如果我希望按照该顺序接收这些值,我将如何管理用户未提供其中一个或多个参数的情况。就像没有给出订购衬衫的数量一样,有没有办法可以将该值初始化为默认值1?
答案 0 :(得分:1)
可选命令行参数有两种常用方法
使用java MyClass -q5
之类的标记。解析这些论点对你自己来说很难。我建议使用commons-cli等库。
将可选参数放在最后。这样,如果用户只提供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
参数之前检查每个参数。
无论哪种方式,你现在可能已经明白了这一点,如果有一个模式并且分配它,请参与争论。