gpt4 book ai didi

java - 防止Java解析命令行参数

转载 作者:行者123 更新时间:2023-11-29 10:07:50 27 4
gpt4 key购买 nike

想用 Java 编写一个不会自动解析命令行参数的应用程序。目前,java 需要 public static void main(string[]) 作为入口点签名。我只想要一个我自己解析的字符串。这完全可以做到吗?

举个例子:java MyProgram Hello World

我希望它给我 Hello World 而不需要在该字符串周围加上引号。我什至会满足于 java 给我整个 java MyProgram Hello World。我认为这是 Java 之外的东西,与 shell 有更多关系。

最佳答案

你对外壳部分的看法是正确的。假设您使用的是 Unix,您的 Unix shell 将在空格处拆分您的输入字符串,然后将每一部分作为输入到“main”的数组中的一个元素返回给您。将所有内容作为单个字符串放入的唯一方法是像这样引用它(你说你不想要):

java MyProgram 'Hello World'

如果您不想这样做,最简单的方法就是将它们重新组合成一个字符串:

public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
for(String s : args) {
sb.append(s);
sb.append(" "); //some length of whitespace
}

String yourString = sb.toString().trim();
}

这里真正的问题是,如果您尝试避免引用并自己重新组合输入字符串,您将失去每个单词之间的空格量。如果重新组合,则以下所有命令行:

java MyProgram Hello World
java MyProgram Hello World
java MyProgram Hello World

仍然会在您的程序中显示为“Hello World”。

关于java - 防止Java解析命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2466541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com