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红色
vsJavaMyClass M蓝色
。您将如何确定遗漏的数量?