你如何从命令行参数中分割字符串? - Java

use*_*792 1 java split command-line-arguments

基本上在命令行中,我的论点将是类似的

-app app1 app2 app3 -env env1 env2 //the number can go higher then 3 and 2 
Run Code Online (Sandbox Code Playgroud)

我有一个应用程序的枚举和envs的枚举

我知道最简单的方法是使用库并使用它们,但这对我来说不是一个选择.我试图从Java拆分命令行参数中读取内容

传递带有空格的命令行参数 并将它们放在一起但它没有用完

我认为我需要做的是拆分,当我看到"-app"然后将其后的内容添加到列表中,直到我看到"-env"所以我想要拆分" - ".我从不拆分命令行参数或数组.这就是我到目前为止所尝试的.(我把if部分拿出来因为我知道那个部分正在工作,并且不涉及任何事情)

public static void main(String[] args) 
{
    boolean sawApp = false;
    boolean sawEnv = false;
    List<String> appList = new ArrayList();
    List<String> envList = new ArrayList();


    else if(args.length > 0)
    {
        for(int i = 0; i < args.length; i ++)
        {
            if(args.equals("-app"))
            {
                sawApp = true;
                String[] apps = //this is where I am stuck
            }
            else if(args.equals("-env")
            {
                sawEnv = true;
                String[] env = //this is where I am stuck
            }
        }

    }
Run Code Online (Sandbox Code Playgroud)

然后在它解析这些后,它需要采取它们并运行我在代码顶部的方法

public static Application chooseAppTest(String[] args) 
    {
        Application application = null;

        switch (application)
        {
        case ACCOUNTINVENTORY:
Run Code Online (Sandbox Code Playgroud)

dim*_*414 5

我会用args4j.任何试图"正确"手动解析命令行参数的尝试都是徒劳无功的轮换.