将测试文件中的现有字符串与带有参数的新输入者对象进行比较时,总是 return false
always return false when compare an existing string from a test file to the newly enterer object with parameter
这是我检查前三个元素是否相同的方法
carModel 是一个字符串
购买价格是双倍
purchaseDate 是一个日期
我将这些存储在一个 txt 文件中,用逗号和 space 分隔,例如 ", "
但是,即使我输入的只是同一条记录,此方法总是 return 错误。但是当我把第一个“&&”改成“||”时,它会return为真。
public static boolean exist(Car c) {
String line = "";
File file = new File("Car Records.txt");
try {
BufferedReader fr = new BufferedReader(new FileReader(file));
while ((line = fr.readLine()) != null) {
String[] s = line.split(", ");
if ((s[0].equals(c.carModel)) &&(s[1].equals(c.purchasePrice))&& (s[2].equals(c.purchaseDate))
&& (s[5].equals(false)) ){
return true;
}
}
fr.close();
} catch (IOException e) {
System.out.println("Error reading file");
}
return false;
}
s[0]
、s[1]
和 s[2]
是 String
,因此将它们与 double
或 Date
进行比较永远不会 return 正确。
在进行比较之前,您必须将输入字符串解析为正确的类型。
你需要这样的东西(我没有修复 Date
比较,因为我不知道你如何表示输入文件中的日期):
if ((s[0].equals(c.carModel)) &&(Double.parseDouble(s[1])==c.purchasePrice)&& (s[2].equals(c.purchaseDate))
&& (s[5].equals("false")) ){
return true;
}
这是我检查前三个元素是否相同的方法
carModel 是一个字符串
购买价格是双倍
purchaseDate 是一个日期
我将这些存储在一个 txt 文件中,用逗号和 space 分隔,例如 ", "
但是,即使我输入的只是同一条记录,此方法总是 return 错误。但是当我把第一个“&&”改成“||”时,它会return为真。
public static boolean exist(Car c) {
String line = "";
File file = new File("Car Records.txt");
try {
BufferedReader fr = new BufferedReader(new FileReader(file));
while ((line = fr.readLine()) != null) {
String[] s = line.split(", ");
if ((s[0].equals(c.carModel)) &&(s[1].equals(c.purchasePrice))&& (s[2].equals(c.purchaseDate))
&& (s[5].equals(false)) ){
return true;
}
}
fr.close();
} catch (IOException e) {
System.out.println("Error reading file");
}
return false;
}
s[0]
、s[1]
和 s[2]
是 String
,因此将它们与 double
或 Date
进行比较永远不会 return 正确。
在进行比较之前,您必须将输入字符串解析为正确的类型。
你需要这样的东西(我没有修复 Date
比较,因为我不知道你如何表示输入文件中的日期):
if ((s[0].equals(c.carModel)) &&(Double.parseDouble(s[1])==c.purchasePrice)&& (s[2].equals(c.purchaseDate))
&& (s[5].equals("false")) ){
return true;
}