我可能忽略了这个问题的一个简单解决方案,但是我在理解如何以某种格式解析java程序中的命令行参数时遇到了麻烦。
我想解析多个采用"-c3“形式的命令行参数。字母"c“表示程序中的一个特定变量。数字"3“表示"c”的值。
以下是我最初对解析命令行参数进行概念化的方法:
for(int i=0; i<args.length; i++){
String[] parseArg = args[i].split("");
switch(parseArg[2]){ //parseArg[2] is the alpha character
case "c" :
varC = parseArg[3]; //parseArg[3] is the first digit of the value, varC is the placeholder for command line variable "c" (ie "-c3")
}我将继续为所有将作为命令行参数给出的变量添加多个case语句。这似乎是一个有效的解决方案,直到我意识到超过一个数字的整数不能正确拆分。
我已经阅读了.string方法的教程和不同的解析方法,但我仍然不清楚如何根据字母和数字字符的不同来解析参数。
发布于 2016-10-20 11:29:40
尝尝这个。
String arg = "-c12345";
String[] parseArg = arg.split("(?<!...)");
System.out.println(Arrays.toString(parseArg));结果:
[-, c, 12345]发布于 2016-10-20 11:21:33
我不完全理解你到底想尝试什么,但这个解决方案对你来说是有效的。记住索引是以。
for(int i=0; i<args.length; i++){
String[] parseArg = args[i].split("");
int varC = 0;
switch(parseArg[1]) {
case "c" :
varC = Integer.parseInt(parseArg[2]);
break;
}
}您可能需要在for循环内部甚至之前声明varC。
https://stackoverflow.com/questions/40144825
复制相似问题