So I have another assignment to do and the task is to assort 3 strings alphabetically using the compareTo method. Basically the program receives 3 strings (a, b, and c) from a tester class and its supposed to return back the "getMin", "getMiddle", and "getMax".
I figured out the getmin and max, seemed easy but im having problems with the getMiddle.
this is what i have for min and max:
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;
and similarly for get max only slightly different. How can I go about creating the getMiddle. Also we are not allowed to use arrays as we "haven't learned" them yet. and the prof said that the code for get middle should be around 5-6 lines.
Thanks
解决方案
Multiply return values of compareTo method.
If the value is middle, results of compareTo method have different signs.
do multiply result is zero or has negative sign.
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;
}