2012-05-07 26 views
-1

私は非常に無意味なJavaプログラマーです。私はcompareTo関数を使用して文字列の配列をソートしようとしています。しかし、 '='演算子はcode.Canの誰かに助けてくれますか?ありがとう=例外をスローする例外

public class StringSort 
{ 
    static String arr[]= ("Now","My","There","When"); 
     public static void main(String[] args) 
    { 

     for(int i=0;i<arr.length;i++) 
     { 
      for(int j=0;j<arr.length;j++) 
      { 
       if(arr[i].compareTo(arr[j])<0) 
       { 
        String t=arr[j]; 
        arr[j]=arr[i]; 
        arr[i]=t; 
       } 
      } 
     } 
    } 

} 
+1

確かに、問題が何であるか、どこで発生するのかを推測することができます。この場合は、簡単にできました。一般的には、例外/エラーがどの行に発生したのかを明示的に記述すると、誰もが簡単に生活できます。また、実行時エラーの場合は、該当する場合は入力データと出力データも記述する必要があります。 –

+0

次回は、質問をするときに、エラーが発生した行番号を明記して、わかりやすく答えるようにしてください。この質問には6 '='演算子があります。 –

答えて

11

配列初期化子の周りにパラセイの代わりに中かっこを使用します。

static String arr[]= {"Now","My","There","When"}; 
1

中に項目を入れて明示的に配列を宣言するときは、中括弧を使用します。

static String arr[]= {"Now","My","There","When"}; 
4

static String arr[]= new String[]{"Now","My","There","When"};

1

あなたができるならば、それはプライベートと最終的にするほうがよいです。また、f C表記法の代わりにJava配列記法を使用してください。また、最良

private final static String[] arr = {"Now","My","There","When"}; 

ITSは、それが生命であるとフィールドの範囲を制限する(すなわち、作成に使用され、廃棄します)。 1つのメソッドでのみ使用されるため、そこで定義することができます。

+0

また、この方法をどのように使用するかについて考える必要があります。コールの頻度とフィールド値を作成するコストを考慮するなど。この場合、それは一度だけですが実際のクラスとメソッドでは 'main'なので、スコープが単なるメソッドであっても、(メソッドではなく)クラスのフィールドを静的に初期化することはしばしば役に立ちます。 –

+0

@KevinBrock真実、ライフサイクルの問題、編集中... –