我的班级名为Detective
:
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
之前获取在check方法中打印的内容的结果,以便在toString方法中打印?我试图复制check方法中的内容并将其放在toString方法中,但它只打印一个位置@哈希码。有没有办法简单地将用于打印目的的check方法的字符串结果复制到toString中?
基本上我要问的是如何简单地获取check方法中输出的str并将其打印在我的toString方法中。
答案 0 :(得分:0)
在实例级别取出str
变量,而不是在check
方法中声明它。
现在是您的toString
方法:
public String toString()
{
return str;
}
确保在您的应用程序调用{{1}}之前致电check
,一种方法是通过调用toString
构造函数中的check
方法。
答案 1 :(得分:0)
您需要更改方法check()
以返回字符串
public Strin gcheck (String line){...
将print
调用移除或保留在check()中:
System.out.println(str);
而不是return false;
将其更改为return str;
现在在toString()
中调用check()
并连接结果。
public String toString()
{
String str = "";
str = "Person: " + check() + "/n";
return str;
}