簡體   English   中英

如何僅使用我的代碼中的 if 語句將字符串按正確的字母順序排序?

[英]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("");
   }

我在 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("");
}

怎么樣:

    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM