gpt4 book ai didi

java - 如何在命令行参数中使用indexOf()?

转载 作者:行者123 更新时间:2023-12-02 03:00:59 24 4
gpt4 key购买 nike

如何检查以下命令行参数 - inventory make=Honda desc by_count Total - 是否有 make= ?

我已经创建了String[] savingArgs,所以我将所有参数传递给这个数组,但是数组没有indexOf(),所以我现在有点迷失了......

我希望能够在命令行参数中查找 ma​​ke=,以便我可以使用适当的方法根据汽车制造商显示列表。我所能做的就是使用 contains() 来查找精确匹配(例如:make=Hondamake=BMW),但这样我会多次重复相同的代码我认为这是糟糕的设计。

提前致谢

最佳答案

没有内置的 indexOf 或类似方法可以开箱即用地满足您的需求。一种选择类似于:

    final String makeArgPrefix = "make=";
Optional<String> makeArg = Stream.of(args)
.filter(arg -> arg.startsWith(makeArgPrefix))
.findAny();
makeArg.ifPresent(arg -> System.out.println(arg.substring(makeArgPrefix.length())));

这需要 Java 8,因为我使用的是流。在命令行参数中使用 make=Honda 打印

Honda

它没有考虑到多个命令行参数可以以 name= 开头。它可以根据您的具体要求进行完善。

请允许我补充一下,命令行参数的标准解释是从左到右处理它们的(如果您不想忽略某些参数,这是明智的做法)。类似的东西

for (String arg : args) {
if (arg.equals("desc") {
ascending = false;
} else if (arg.startsWith(makeArgPrefix) {
make = arg.substring(makeArgPrefix.length());
} else if // and so on

}

当然,请按照最适合您的具体情况的方式进行操作。

关于java - 如何在命令行参数中使用indexOf()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42366037/

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