我想知道是否有人可以帮助我尝试仅使用 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("");
}
最佳答案
您尝试将字符串与不可对字符串进行操作的 <= 进行比较,这就是为什么您会收到错误的操作数类型错误。
您应该使用 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/