仅当代码中的语句时,如何才能将字符串排序为正确的字母顺序?

时间:2019-10-18 11:20:15

标签: java

我想知道是否有人可以帮助我尝试仅使用if语句将三个字符串值按正确的字母顺序排序?

据我了解,我正在使用的运算符选择是整数值而不是字符串。因此,我可以使用哪种运算符代替适用于字符串的运算符?如果有人说一起跳过if语句,并且使用我不能使用的数组(仅if语句)。

我的密码

    String p= "Matt";
    String m ="Jack";
    String o ="Sam";

   if (( p <= m ) && ( m <= o ) )
    {
        System.out.println("");
   } 
   else if (( p <= m) && ( m <= o ) )
   {
        System.out.println("");
   }
   else if (( o <= p ) && ( p <= m ) )
   {
        System.out.println("");
   }
   else if (( o <= m ) && ( m <= p ) )
   {
        System.out.println("");
   }
   else if (( m <= p ) && ( p <= o ) )
   {
        System.out.println("");
   }
   else
   {
        System.out.println("");
   }

Error I'm getting in BlueJ

2 个答案:

答案 0 :(得分:2)

您正在尝试将字符串与<=进行比较,该字符串不能在字符串上使用,这就是为什么您会收到错误消息,指出错误的操作数类型。

您应该使用string1.compareTo(string2)方法比较两个字符串。当两个字符串相等时,它返回0;如果string1 string2,则返回正数。

鉴于此,您应该执行以下操作:

String p= "Matt";
String m ="Jack";
String o ="Sam";

if (( p.compareTo(m) <= 0 ) && ( m.compareTo(o) <= 0 ) )
{
    System.out.println("");
} 
else if (( p.compareTo(m) <= 0 ) && ( m.compareTo(o) <= 0 ) )
{
    System.out.println("");
}
else if (( o.compareTo(p) <= 0 ) && ( p.compareTo(m) <= 0 ) )
{
    System.out.println("");
}
else if (( o.compareTo(m) <= 0 ) && ( m.compareTo(p) <= 0 ) )
{
    System.out.println("");
}
else if (( m.compareTo(p) <= 0 ) && ( p.compareTo(o) <= 0 ) )
{
    System.out.println("");
}
else
{
    System.out.println("");
}

答案 1 :(得分:0)

怎么样:

    if (p.compareTo(m) <= 0) {
        if (m.compareTo(o) <= 0) {
            System.out.println(p);
            System.out.println(m);
            System.out.println(o);
        } else if (p.compareTo(o) <= 0) {
            System.out.println(p);
            System.out.println(o);
            System.out.println(m);
        } else {
            System.out.println(o);
            System.out.println(p);
            System.out.println(m);
        }
    } else {
        if (p.compareTo(o) <= 0) {
            System.out.println(m);
            System.out.println(p);
            System.out.println(o);
        } else if (m.compareTo(o) <= 0) {
            System.out.println(m);
            System.out.println(o);
            System.out.println(p);
        } else {
            System.out.println(o);
            System.out.println(m);
            System.out.println(p);
        }
    }