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);' –