2011-12-18 42 views
-1

我有問題顯示字母乙醚他們是升序或不是,它似乎是正確的假設陣列升序,但總是得到錯誤結果當我打印他們時,我嘗試了另一種方式,但總是得到錯誤的結果。顯示元素使用冒泡排序java中的升序或降序

public class Main 
{ 
    public static void main(String[] args) 
    { 
     System.out.print("#Enter text : "); 
     String text = BIO.getString(); 

     boolean inorder = false; 
     while (! text.equals("END")) 
      { 
      inorder = true; 
      // Convert the above string to a char array. 
      char[] arr = text.toCharArray(); 

      for (int i=0; i<arr.length-1; i++) 
      { //Check pair 

       if (arr[i] > arr[i + 1]) { 

       inorder = false; 
       break; 

       } 

      } 


      if (inorder) { 

      System.out.printf(text + " is in ascending order\n"); 


      } 

      else { 

      System.out.printf(text + " is not in ascending order\n"); 

      } 

      System.out.print("#Enter text : "); 
      text = BIO.getString(); 


     } 
    } 
} 
+2

你得到了什麼輸出?你期望什麼?當你在調試器中運行代碼時,你學到了什麼? – 2011-12-18 15:31:24

+0

你能舉一個這個代碼工作的例子嗎? – 2011-12-18 15:35:05

+0

請將「家庭作業」標籤添加到這樣的問題 – 2011-12-18 16:20:30

回答

1

上面的代碼工作正常,也許問題是由BIO.getString()返回的值。同樣在標題中你提到了一個冒泡排序算法,那裏的代碼在哪裏?問題可能在那裏。

編輯:

現在你已經提到這個問題是與大/小寫的話,我可以建議你只是轉換輸入文本爲小寫比較,這樣才:

char[] arr = text.toLowerCase().toCharArray(); 

這樣,文本是大寫還是小寫都沒關係。

+0

我確認上述代碼工作正常,即使是非英文字符。另外,上面的代碼顯示了它檢查的字符串,所以應該很容易通過查看程序輸出來檢查它是否在說真話,除非該BIO.getString()函數執行了一些令人討厭的操作,例如,字符串中的可打印字符如零。 – 2011-12-18 16:23:58

+0

問題是當我輸入單詞例如「knotty」會給我結果「按升序排列」,但是當大寫字母在開始和結尾的單詞「KnottY」中它給了我結果「不是從小到大「能否請你幫忙,謝謝 – user761980 2011-12-18 18:57:03

+0

@ user761980我編輯了我的答案,請檢查它是否適合你。你應該從一開始就提到你在使用大寫/小寫時遇到問題。 – 2011-12-18 20:07:44