我可能忽略了此问题的简单解决方案,但是我在概念化如何以某种格式解析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方法和各种解析方法的教程,但我仍不清楚如何根据字母和数字字符的不同来解析参数。

最佳答案

尝试这个。

String arg = "-c12345";
String[] parseArg = arg.split("(?<!...)");
System.out.println(Arrays.toString(parseArg));


结果:

[-, c, 12345]

10-07 22:25