gpt4 book ai didi

java - 从多个命令行参数打印较小的字符串

转载 作者:行者123 更新时间:2023-11-30 06:47:44 28 4
gpt4 key购买 nike

我想扩展我当前的程序以接受任意数量的命令行参数并打印其中较小的一个(区分大小写)。目前是这样的:

public class StringCompare {

public static void main(String[] args) {

String s1 = new String(args[0]);
String s2 = new String(args[1]);

if (s1.compareTo(s2) > 0) {
System.out.println(s2);
}
else if (s1.compareTo(s2) < 0) {
System.out.println(s1);
}
else {
System.out.println("Both are equal.");
}
}
}

我所追求的例子:

Input: aaa aa a aAa

Output: a

解决这个问题的优雅方法是什么?

最佳答案

使用 Java 8 语法和 lambda,您可以按如下方式执行此操作:

已编辑(根据@Aominè 评论中的建议)

public static void main(String[] args) {

String min = Arrays.stream(args)
.min(String::compareTo)
.orElse("<none>");

System.out.println(min);
}


如果您想知道所有字符串是否相等,您可能需要添加一个额外的步骤来检查它:

public static void main(String[] args) {

String min = Arrays.stream(args)
.min(String::compareTo)
.orElse("<none>");

if (!Arrays.stream(args)
.allMatch(x-> x.equals(min))) {
System.out.println(min);
} else {
System.out.println("All are equal.");
}
}

关于java - 从多个命令行参数打印较小的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45531773/

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