2011-12-18 26 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

出力はどのように得ましたか?あなたは何を期待しましたか?デバッガでコードを実行したときに何を学びましたか? –

+0

このコードが間違っている例を教えてください。 –

+0

このような質問に「宿題」タグを追加してください –

答えて

1

上記のコードは正常に動作しますが、たぶん問題はBIO.getString()によって返された値です。また、タイトルにはバブルソートアルゴリズムがありますが、そのコードはどこにありますか?問題がそこにある可能性があります。

EDIT:

今、あなたは問題が小文字/アッパー言葉であることを述べてきたことを、私はあなただけの入力テキストはこのように、比較する前に小文字に変換することを示唆している可能性があります

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

このように、テキストが大文字か小文字かは関係ありません。

+0

英語以外の文字でも上のコードがうまく動作することを確認します。また、上記のコードはチェックしている文字列を表示するので、BIO.getString()関数が何らかの厄介なことをしない限り、プログラムの出力を見るだけで真実を伝えているかどうかを確認するのは簡単です。文字列の中でゼロのような印字可能な文字。 –

+0

問題は私が "knotty"のような単語を入力すると "昇順"ですが、大文字を先頭に付けて "KnottY"という単語の終わりにすると結果が "昇順ではありません" "助けてくれてありがとうございます – user761980

+0

@ user761980私は自分の答えを編集しました。それがあなたのために働くかどうか確認してください。あなたは大文字/小文字の問題があることを当初から述べておくべきでした。 –

関連する問題