![](/img/trans.png)
[英]How can I order any three variable values in alphabetical order using if else statements only?
[英]How can I sort strings into the correct alphabetical order using only if statements from my code?
我想知道是否有人可以幫助我嘗試僅使用 if 語句將三個字符串值排序為正確的字母順序?
據我了解,我使用的運算符選擇是用於 integer 值而不是字符串。 因此,我可以使用什么運算符來代替適用於字符串的運算符? 如果有人說一起跳過 if 語句並使用 arrays 我不能,只有 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("");
}
怎么樣:
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);
}
}
你應該使用 compareTo(),如果你不能使用 arrays,你最好改變你的實現。
我想出了類似的東西:
String p= "Matt";
String m ="Jack";
String o ="Sam";
if(p.compareTo(m) < 0) {
if(p.compareTo(o) < 0) {
System.out.println(p);
if(m.compareTo(o) < 0) {
System.out.println(m);
System.out.println(o);
}
else
{
System.out.println(o);
System.out.println(m);
}
}
} else {
if(m.compareTo(o) < 0) {
System.out.println(m);
if(p.compareTo(o) < 0) {
System.out.println(p);
System.out.println(o);
}
else
{
System.out.println(o);
System.out.println(p);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.