[英]Java, sort strings alphabetically without arrays
因此,我还有另一项工作要做,任务是使用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。 另外,我们还不能使用数组,因为我们还没有“学习”它们。 教授说,获取中间代码应该在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;
}
String middle = "";
if (a.compareTo(b) <= 0 && a.compareTo(c) >= 0) middle = a;
else if (b.compareTo(a) <= 0 && b.compareTo(c) >= 0) middle = b;
else if (c.compareTo(b) <= 0 && c.compareTo(a) >= 0) middle = c;
return middle;
用自己的方式做,看起来像这样:
if (a.compareTo(b) > 0 && a.compareTo(c) <= 0) middle = a;
else if (a.compareTo(c) > 0 && a.compareTo(b) <= 0) middle = a;
else if (b.compareTo(a) > 0 && b.compareTo(c) <= 0) middle = b;
else if (b.compareTo(c) > 0 && b.compareTo(a) <= 0) middle = b;
else middle = c;
return middle
好吧,这就是背后的一般要点。 您可以将其中一些合并在一起以减少行数,但我将由您自己决定。
为什么这么复杂? 只需使用TreeSet ,它就在内部使用compareTo():)。
这给了中点..没有经过全面测试..而且,关于行数的预测,我不确定我是否很好地满足了...无论如何...
String mid = "";
if (a.compareTo(b) <= 0) {
if (b.compareTo(c) <= 0) mid = b;
else mid = c;}
else if(a.compareTo(c) <= 0) mid = a;
else mid = c;
return mid;
我将只使用TreeSet是因为它在添加数据后对数据进行排序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.