我想知道是否有人可以帮助我尝试仅使用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("");
}
答案 0 :(得分:2)
您正在尝试将字符串与<=进行比较,该字符串不能在字符串上使用,这就是为什么您会收到错误消息,指出错误的操作数类型。
您应该使用string1.compareTo(string2)方法比较两个字符串。当两个字符串相等时,它返回0;如果string1
鉴于此,您应该执行以下操作:
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);
}
}