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

时间:2014-05-02 10:18:42

标签: java command-line command command-line-arguments

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

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

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

String input = "-command \"This is a long parameter\"";
String args[] = input.split(" ");
//args[0] = -command
//args[1] = "This
//args[2] = is
//etc.

如果您将此-command "This is a long parameter"用作主要方法的参数,则可以获得以下信息:

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

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

1 个答案:

答案 0 :(得分:1)

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

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

上面的代码将显示:

hello 
"world this is"
a string