2016-12-03 10 views
0

私はDetectiveと呼ばれる私のクラスでは、このメソッドを持っている:同じクラスのtoStringメソッドでメソッドの結果を出力するには?

public boolean check (String line) 
    { 
     // Separte the information into three categories 
     String[] categories = line.split("; "); 
     String[] info; 

     // Get the suspect's information 
     info = categories[0].split(", "); 
     suspect = new Person(info[0].charAt(0), Integer.parseInt(info[1]), Double.parseDouble(info[2])); 

     Person person = new Person(); 
     //System.out.println(theOracle.checkPerson(suspect)); 
     if (theOracle.checkPerson(suspect) == 0){ 

      String st = null; 
     categories[0] = st; 
      String str = ""; 
      if (info[0].charAt(0) == 'M') 
       str += "Male, "; 
      else if (info[0].charAt(0) == 'F') 
       str += "Female, "; 
      else 
       str += "unknown, "; 

      str += Integer.parseInt(info[1]) + "'s, "; 
      str += Double.parseDouble(info[2]) +"m"; 
      System.out.println(str); 
      } 
     // Get the location 
     info = categories[1].split(", "); 
     suspectLocation = new Location(Double.parseDouble(info[0]), Double.parseDouble(info[1])); 
     //System.out.println(theOracle.checkLocation(suspectLocation)); 

     // Get the time 
     info = categories[2].split(":"); 
     suspectTime = new Time(Integer.parseInt(info[0]), Integer.parseInt(info[1])); 

     return false; 
    } 

とも同じクラスのtoStringメソッド:

public String toString() 
{ 
    String str = ""; 
    str = "Person: " + "/n"; 
    return str; 
} 

にはどうすればチェック方法で印刷されますどのような結果を得ることができます/nの前にtoStringメソッドで印刷するには?私はチェックメソッドにあるものをコピーしてtoStringメソッドに入れようとしましたが、単に場所@ハッシュコードを出力します。 printメソッドの文字列の結果をtoStringに単純にコピーする方法はありますか?

基本的には、私は単にcheckメソッドで出力されたstrを受け取り、代わりにそれをtoStringメソッドで出力することができます。

+0

'Person'オブジェクト情報を印刷する場合は、' Person'クラスに 'toString()'メソッドを実装してください。 –

+0

これはすでにpersonクラス 'public String toString()に実装されています { 文字列str =" "; if(gender == 'F') str + = "female、"; else if(gender == 'M') str + = "male、"; else str + = "不明"; str + = ageRange + "'s、"; str + = height + "m"; return str; } ' – a44d

+0

今、私が探偵のtoStringに新しい人物オブジェクトを作成して、上記の^^が言っていることを正確に表示したら、M - >男性変換などを印刷する必要があります。 – a44d

答えて

0

checkメソッドで宣言するのではなく、インスタンスレベルで変数strを取り除きます。

今、あなたのtoString方法は:

public String toString() 
{ 
    return str; 
} 

アプリケーションがtoString呼び出す前にcheckを呼び出すことを確認し、これを実行するための1つの方法はDetectiveコンストラクタからcheckメソッドを呼び出すことです。

+0

できません。 strは宣言されません。 – a44d

+0

これは、「宣言されていない」ことを意味します。 文字列str = ""; //インスタンスレベルで – ManishKr

+0

あなたは 'Private String str; 'を行うことを意味します – a44d

0

あなたは、文字列

public Strin gcheck (String line){... 

削除を返すかのチェックでprint呼び出し()維持する方法check()を変更する必要があります。

System.out.println(str); 

、代わりのreturn str;

return false;変更、それを

toString()に呼び出し、check()を呼び出し、結果を連結します。

public String toString() 
{ 
    String str = ""; 
    str = "Person: " + check() + "/n"; 
    return str; 
} 
関連する問題