解析在运行的应用程序内输入的字符串命令行参数

时间:2014-11-24 13:23:13

标签: java string parsing parameters external

我正在用Java开发一个小型学生项目,但我遇到了一个问题。 首先,我想向您展示这个想法:

我们在命令行中运行主应用程序,让我们说“ems”:

java -jar ems.jar
ems: Hello, bla bla bla type help to see bla bla bla.

现在我希望用户输入带有这样的参数的命令(只是示例)

ems: help
ems: list -h
ems: program -h
ems: program -create -n Ping -path "C:\\ping.exe" //-create to add new program record  to DB
ems: program -delete -n Ping  //-delete from DB
ems: list -create -n ListForPinging //-creating new list in DB
ems: list -add -n ListForPinging  -p Ping -host stackoverflow.com -t //-add linking program with list

这将导致使用某些参数执行不同的方法,修改DB中的记录并在DB中插入这些参数(供以后使用)。 After executing this list, it will fire up C:\\ping.exe -host stackoverflow.com -t

问题是:我是否走正确的道路?如何解析/处理这些参数?我应该和.split一起去吗?有什么提示吗?

提前致谢。

编辑: 我开始使用regexp,.split(“”);但它不具备可扩展性。还发现了一些像args4j这样的工具,但无法让它工作。我找到的所有东西都在研究主程序的参数而不是“内部”的参数。或者也许我做错了?不,它不是功课。我自己的任务是更好地进行编程。

2 个答案:

答案 0 :(得分:0)

解决。使用HashMap存储param + name并使用.split解析它。

答案 1 :(得分:0)

您还拥有Apache Commons CLI,它为您提供了一个非常好的API,用于解析和使用命令行参数。

在此处查看更多详情:http://commons.apache.org/proper/commons-cli/

希望这有帮助。