Java,在没有数组的情况下按字母顺序对字符串进行排序

标签 java sorting collections

所以我还有另一个任务要做,任务是使用 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/

相关文章:

java - 使用 spring data jpa 按角色查找用户

javascript - Angular js - 根据字母 ASCII 值在表中排序

c# - 复制 KeyedCollection 的最快方法

java - 我怎样才能退出这个循环?

java - 具有多个键的映射

java - Jackson 从一组 json 属性创建对象

java - 无法解析符号 'Assertions' <-- 尝试在 IntelliJ 中使用 AssertJ 时出现错误消息

java - 更新连接表中的值很麻烦 spring data JPA

Java:集合排序,返回改变的索引

r - 日期向量的分位数函数