【发布时间】:2015-09-03 11:17:51
【问题描述】:
所以我正在尝试编写一个具有程序内控制台界面的应用程序(即您不必每次都使用不同的命令从控制台运行程序),并且我想要一个解析器对象解析来自用户的命令/选项。结构类似这样-
ArrayList<String> example = new ArrayList<>();
/* PARSING */
ConsoleParser parser = new ConsoleParser();
Scanner input = new Scanner(System.in);
String parserArgs = input.nextLine();
while (parserArgs != "quit")
{
execute(parser.parse(parserArgs));
parserArgs = input.nextLine();
}
所以我的想法是有一个控制台(在应用程序内),我可以在其中键入诸如“添加 x”或“包含 x”之类的命令,然后将其分配给“parserArgs”。然后命令字符串将被传递给 ConsoleParser,在那里它将被剖析并搜索有效命令。如果命令有效(并且具有必要的选项/参数),则 ConsoleParser 的 parse() 方法会以某种方式将方法(或方法名称)以及该方法所需的任何参数返回给 main。因此,如果我想将字符串“foo”添加到我的 ArrayList,那么我可以在控制台输入“add foo”并将其传递给解析器,然后解析器将返回到 main 某种指令,即 add() ArrayList 的方法需要在 'example' 上使用参数 'foo' 调用。我知道这可以通过 arraylist 轻松完成,但为了简单起见,我只是在这里使用它。
【问题讨论】:
标签: java command-line console-application command-line-interface command-line-arguments