我想按字母顺序对城市名称进行排序,因此我使用 CompareTo 来比较城市名称以对其进行排序。但是 CompareTo 给了我一个 Int 而 && 不喜欢这样。另外,请注意 - 我不允许使用数组。
sFirst = (sCity1.compareToIgnoreCase(sCity2) != 0) && (sCity1.compareToIgnoreCase(sCity3)) ?
sCity1 : sCity2.compareToIgnoreCase(sCity3) ? sCity2 : sCity3;
“我尝试在 && 之前加上 > 0,但这似乎没有任何作用,我没有主意了”
String#compareToIgnoreCase方法将返回差异。
这里有一个评估返回值的方法。
要更正您的条件语句,您需要添加这些。
sFirst
= sCity1.compareToIgnoreCase(sCity2) < 0
? sCity1.compareToIgnoreCase(sCity3) < 0
? sCity1
: sCity3
: sCity2.compareToIgnoreCase(sCity3) < 0
? sCity2
: sCity3;
或者,使用流。
sFirst = Stream.of(sCity1, sCity2, sCity3).sorted().toList().get(0);