所以我还有另一个任务要做,任务是使用 compareTo 方法按字母顺序排列 3 个字符串。基本上,该程序从测试器类接收 3 个字符串(a、b 和 c),并且它应该返回“getMin”、“getMiddle”和“getMax”。
我想出了 getmin 和 max,看起来很简单,但我在 getMiddle 方面遇到了问题。 这是我的最小值和最大值:
String min = "";
if (a.compareTo(b) <= 0 && a.compareTo(c) <= 0) min = a;
else if (b.compareTo(a) <= 0 && b.compareTo(c) <= 0) min = b;
else if (c.compareTo(b) <= 0 && c.compareTo(a) <= 0) min = c;
return min;
和 get max 类似,只是略有不同。我该如何着手创建 getMiddle。我们也不允许使用数组,因为我们“还没有学过”它们。教授说 get middle 的代码应该在 5-6 行左右。
谢谢
最佳答案
乘以 compareTo 方法的返回值。 如果值为中间值,则 compareTo 方法的结果具有不同的符号。 相乘结果为零或负号。
String getMiddle(String a,String b,String c)
{
String middle = "";
if (a.compareTo(b)*a.compareTo(c) <= 0) middle = a;
else if (b.compareTo(a)*b.compareTo(c) <= 0) middle = b;
else if (c.compareTo(b)*c.compareTo(a) <= 0) middle = c;
return middle;
}
关于Java,在没有数组的情况下按字母顺序对字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7721241/