2016-05-16 3 views
0

私のコードを正しく見せてくれないようなものに助けてくれますか?配列を再現する

これには2つの欠陥があります。私は配列を読み取って入力を比較することができません。 また、番号を再設定するときに番号を追加しません。

public class Bird { 

    private ArrayList<Vogels> Name; 
    private final Scanner scanner; 
    private int observed; 
    private String R; 


    public Bird (Scanner scanner) { 
     Name = new ArrayList<Vogels>(); 
     this.scanner = scanner; 
     this.observed = 0; 
     this.R = ""; 
    } 

次の方法では動作しないようです。私は問題が配列の読み込みのどこかにあることを知っていますが、正しく読むことができません。

public void Obs(){ 
     System.out.print("What was Observed:?"); 
     R = scanner.nextLine(); 
     if (!Name.equals(R)){ 
      System.out.println("Is not a bird!"); 
     }else{ 
      System.out.println("added"); 
      this.observed++; 
     }  
} 
+0

問題文はかなり曖昧です。あなたはもっと具体的になりますか?何かエラーがありますか? *デバッグのヘルプを求める質問(「なぜこのコードは動作しないのですか?」)には、目的の動作、特定の問題またはエラー、および質問自体にそれを再現するのに必要な最短コードが含まれていなければなりません。明確な問題文がない質問は、他の読者にとって有用ではありません。参照してください:[最小、完全、および検証可能な例を作成する方法](http://stackoverflow.com/help/mcve)。* – tnw

+0

「鳥ではありません! 'Name'フィールドはリストで、' R'は文字列です。あなたがそれらを比較すると、それは常に間違っているでしょう。 –

+0

何か問題がありますか? 'if(!Name.equals(R)){' 'ArrayList'と' String'を比較していますか? – Gangaraju

答えて

0

あなたが最初の配列のうちのオブジェクトを取得し、そのオブジェクトから文字列の値を取得する必要があり、その後、あなたは比較する必要が配列

if (!Name.equals(R)){ 

で文字列を比較しようとしています。 Name.get(0) - >オブジェクトにVogelsを与えます(ループやその他のメカニズムのどちらかにロジックを書く必要があります)。オブジェクトから値を取得し、文字列と比較する必要があります。より良いVogelsオブジェクトを投稿してください。

+0

Siyaラム・チャンドラキ・ジャイ! –

0

コードを調べた後、ファイルから読み取られたデータがリストに含まれているかどうかを確認するように見えます。 getVogelがユーザーに提供文字列に基づいてVOGELSを返します方法です

public void Obs(){ 
      System.out.print("What was Observed:?"); 
//Improve your reading from scanner 
      R = scanner.nextLine(); 
      if (!Name.contains(Vogels.getVogels(R))){ 
       System.out.println("Is not a bird!"); 
      }else{ 
       System.out.println("added"); 
       this.observed++; 
      }  
    } 

:これは何をしたい場合は、以下のようにコードを更新することができます。

+0

名前はVogels.java型の配列リストであるため、Rで参照されるStringオブジェクトが含まれているかどうかを確認することは意味がありません。あなたはΦXoce웃いepepeúpa答えをチェックすることができます、それは理にかなっています。 –

+0

私はそれに応じて私の答えを更新します。 – sauumum

1

名前ArrayListのVOGELSRStringです..です

ので、これここif (!Name.equals(R)){があまりない理にかなっている、と常にfalse

を返します、あなたは必要とするか、または実装する必要があります/ if(Name.contains(Vogels.resolve(R))) のように定義します。は、パラメータとして与えたときにを返す静的メソッドですString