2012-02-07 26 views
3
try { 


    BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
    System.out.println("Enter the continent;"); 
    String CN = in.readLine(); 
    String MaxDate="1"; 
    for(Earthquakerecd e : eqList) 
    { 
     if(e.getContinent().equals("CN")) 
     { 
      MaxDate=e.getDate(); 
     } 

     { 
      System.out.println(e.toString()); 
     } 


    } 

    System.out.println(MaxDate); 
    } 

    catch (IOException e) 
    { 
     System.out.println("IOException has been caught"); 
    } 

これは簡単な問題です。この問題では、Maxdateは1と宣言されています.CNは大陸の文字列です。ユーザー入力が大陸に一致する場合、日付はe.getDate()からMaxdateに渡されます。いずれの場合でも、出力を1にするべきではありません。オブジェクトeからの日付でなければなりません。私は常にMaxdateに1を得ています。可能な解決策はありますか?私の構文は正しいのですか?オブジェクト文字列から文字列への値の受け渡し

if(e.getContinent().equals(CN)) 

を今あなたは文字列リテラル "CN" に対して比較している:

+0

あなたはmaxDateの= e.getDate()のtoStringを試してみました()?私はJavaに精通していませんが、ショットの価値があります – ComputerSaysNo

+0

オブジェクトeの日付属性は途中で文字列です –

+0

なぜMaxDateは文字列ですか?同じクラスにするe.getDate()returns ...また、Javaの規則では、小文字の変数と大文字のクラスを開始することです。 – m0skit0

答えて

7

は、あなたが望むように思えます。変数CNは何も使用していません。

ifの文の後にelseを挿入することを前提としていますか?

また、Javaでは変数名を大文字で始めるのが一般的です(文字列をCNではなくcnとしてください)。

1

は、このようにそれをやってみてください。

try { 


    BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
    System.out.println("Enter the continent;"); 
    String CN = in.readLine(); 
    String MaxDate="1"; 
    for(Earthquakerecd e : eqList) 
    { 
     if(e.getContinent().equals(CN)) //When you put it with "" the continent value was compared to CN and not from the user input 
     { 
      MaxDate=e.getDate(); 
     } 

     { 
      System.out.println(e.toString()); 
     } 


    } 

    System.out.println(MaxDate); 
    } 

    catch (IOException e) 
    { 
     System.out.println("IOException has been caught"); 
    } 

そのdoesntの仕事ならば、このようにするために実行してみてください:。

for (int i=0; i<eqList.size(); i++) { 
    Earthquakerecd e = eqList.get(i); 
    //... code ... // 
} 
関連する問題