2
我想扩展当前的程序以接受任意数量的命令行参数并打印较小的一个(区分大小写)。目前,它就像这样:什么我后我从多个命令行参数中打印较少的字符串
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
什么是优雅的方式来处理呢?
'Arrays.asList(args).stream()'是不必要的,当'args'包含很多元素时会导致开销。所以,我会使用'Arrays.stream(args).min(String :: compareTo);'来代替。另外,你没有正确使用'Optional'。我建议在'get'调用之前使用'IfPresent',或者改为像'string smallestElement = Arrays.stream(args).min(String :: compareTo).orElse(enterSomeDefaultValueOrNull);' –