如何从java中的字符串创建args[]

如何从java中的字符串创建args[],java,command-line,command,command-line-arguments,Java,Command Line,Command,Command Line Arguments,我需要模拟命令行,因此我需要将字符串更改为args[],就像在main方法中运行带参数的程序一样 我使用的是commons cli,但它没有任何解析方法,它确实需要字符串数组 我想,我只是使用split,但不幸的是,看看这个问题: String input = "-command \"This is a long parameter\""; String args[] = input.split(" "); //args[0] = -command //args[1] = "This //arg

我需要模拟命令行,因此我需要将字符串更改为args[],就像在main方法中运行带参数的程序一样

我使用的是commons cli,但它没有任何解析方法,它确实需要字符串数组

我想,我只是使用split,但不幸的是,看看这个问题:

String input = "-command \"This is a long parameter\"";
String args[] = input.split(" ");
//args[0] = -command
//args[1] = "This
//args[2] = is
//etc.
如果将此
-命令“这是一个长参数”
用作main方法的参数,则会得到以下结果:

//args[0] == -command
//args[1] == This is a long parameter

那么有什么建议怎么做呢?第二个问题是在google上找到它,因为每个线程都解释了args[]是什么,而不是如何从字符串中获取它。

您可以使用正则表达式来剪切字符串

for (String s : "hello \"world this is\" a string"
        .split(" (?=\")|(?<=\")\\s"))
    System.out.println(s);

您是否尝试过输入。拆分(“\”);?As\”是您的输入中的分隔符string@BhushanKawadkar-嗯,它可能是正确的方向,但我有两个分隔符-第一个是
,第二个是“`(空格)…@Keppil-非常感谢!这正是我要找的。
hello 
"world this is"
a string