【问题标题】:How to split command params with quotes? [duplicate]如何用引号分割命令参数? [复制]
【发布时间】:2023-03-03 00:53:02
【问题描述】:

我必须将一个命令字符串分块到 params 数组中:

String mystr="myexe.exe param1 param2 param3";

我期待这个结果:

String[] params={"myexe.exe","param1","param2","param3"};

到目前为止一切顺利,我可以简单地使用由空格字符“”分割的字符串。

params 有空格怎么办?如何管理双引号参数?

String mystr="myexe.exe param1 \"param2 with spaces\" param3";

我期待这个结果:

String[] params={"myexe.exe","param1","param2 with spaces","param3"};

【问题讨论】:

  • "params 有空格怎么办?如何管理双引号参数?" => 通过简单地编写代码。不幸的是,SO 不是“请给我写代码”服务。
  • 考虑使用命令行解析库 - 无需重新发明轮子。有不少。
  • 当您尝试将param1 "param2 with spaces" param3 作为命令行参数时,您的代码中实际得到了哪些参数?
  • @khelwood 这是唯一的字符串:String cmd="param1 \"param2 with spaces\" param3";
  • @Seelenvirtuose 我想知道为什么你的链接答案(当然它解决了我的问题!)不像我的“请给我写代码”。

标签: java split command-line-arguments


【解决方案1】:

java main 方法需要 (String[] args) 参数,所以你所有的参数或参数都是一个字符串。

如果您想检查参数何时是“某些参数”的序列,您必须创建一个布尔变量,并迭代参数列表。您还需要一个辅助 Strig 变量来连接参数。因此,如果在迭代过程中参数包含“,则将布尔变量标记为真,然后迭代直到找到下一个带有“的参数。

你也可以简单地在单词下划线,所以当你阅读参数时你只需要这样做,param.replace("_", "");

【讨论】:

    猜你喜欢
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 2015-09-11
    • 1970-01-01
    • 2019-10-09
    • 2012-11-03
    • 1970-01-01
    相关资源
    最近更新 更多