将测试文件中的现有字符串与带有参数的新输入者对象进行比较时,总是 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,因此将它们与 doubleDate 进行比较永远不会 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;
        }