java - 将测试文件中的现有字符串与带有参数的新输入者对象进行比较时,始终返回 false

标签 java string object methods string-comparison

这是我检查前三个元素是否相同的方法

carModel 是一个字符串

购买价格是双倍

purchaseDate 是一个日期

我将它们存储在一个txt文件中,用逗号和空格分隔,例如“,”

但是,即使我输入相同的记录,此方法也始终返回 false。但是当我将第一个“&&”更改为“||”时,它会返回true。

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 进行比较将永远不会返回 true。

在进行比较之前,您必须将输入字符串解析为正确的类型。

您需要这样的东西(我没有修复Date比较,因为我不知道您如何在输入文件中表示日期):

        if ((s[0].equals(c.carModel)) &&(Double.parseDouble(s[1])==c.purchasePrice)&& (s[2].equals(c.purchaseDate))
                && (s[5].equals("false")) ){
            return true;
        }

关于java - 将测试文件中的现有字符串与带有参数的新输入者对象进行比较时,始终返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41074892/

相关文章:

java - Apache ant list 类路径?

java - 通过对象访问类方法

javascript - JSON 对象根据位置返回值

java - Java 中的排序

java - 如何在 Java 中比较字符串?

c - 从文件中读取多行到 C 中的字符串

javascript - 如何过滤掉谷歌表格中的重复项和增量

java - 在 Linux 上运行程序时出现错误。在 Windows 上它工作正常

java - 从 onPostExecute 内部 AsyncTask 获取结果到 OnCreate

java - Talend 中的 tSCPFileExists 组件是否存在问题