java - 如何仅使用代码中的 if 语句将字符串按正确的字母顺序排序?

标签 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

最佳答案

您尝试将字符串与不可对字符串进行操作的 <= 进行比较,这就是为什么您会收到错误的操作数类型错误。

您应该使用 string1.compareTo(string2) 方法来比较两个字符串。当两个字符串相等时,返回 0;如果 string1 < string2,则返回负数;如果 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("");
}

关于java - 如何仅使用代码中的 if 语句将字符串按正确的字母顺序排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58449812/

相关文章:

java - Apache Tiles 如果/否则

java - 存储两个不同类型的元素的最佳方式是什么

java - Java自定义类Hashcode的实现

java - Struts2 Annotations 使用 RegexFieldValidator 验证字符串

java - 与 lucene 相交的边界

java - 多线程环境下long类型实例常量是否必须声明volatile?

java - 安全连接失败

java - 获取三维数组的两个维度 C#

java - 使用预准备语句的 SQL 语法错误

java - 将字符串转换为 SQL 日期