无法从文件中获取行以与代码中的字符串匹配

Can't get line from file to match up with string in code

基本上是在做一个学校作业的项目,它需要一个登录系统,它可以像我喜欢的那样基本,所以我只是将 usernames/passwords 存储在一个文本文件中。我已经编写了代码来逐行读取文件并将每一行存储在一个变量中,这一切都有效但是当我测试看我是否可以将它与字符串进行比较时,即使它们是相同的它似乎并不这么认为,我有 运行 其他测试来确保我的 if/else 陈述是正确的并且 运行 没有其他问题,我目前的理论是它与用户名和密码以“\n”存储,使它们出现在文本文件的不同行上。

public static void main(String[] args) throws IOException {
    
    File file = new File("C:/Users/Will/Desktop/UnPs.txt");
    Scanner scan = new Scanner(file);
    while(scan.hasNextLine()) {         
        String passCheck = scan.nextLine();     
        if(passCheck == "test2,Test2") {
            System.out.println("Test1");
        }
        else if(passCheck != "test2,Test2") {
            System.out.println(passCheck);
            System.out.println("not found");                
        }           
    }       
}   

运行 代码的输出是:

测试1,测试1 未找到 测试2,测试2 未找到 测试3,测试3 未找到

但在我的脑海中,当它到达文件的第二行时,它的 passCheck 值应该为“test2,Test2”。 如果您想查看用户名和密码是如何写入文件的,请询问,但正如我所说,我的理论是“\n”是相关的

您正在以错误的方式进行字符串相等性检查。

== 运算符检查对对象的引用是否相等。

更新代码

public static void main(String[] args) throws IOException {
    
    File file = new File("C:/Users/Will/Desktop/UnPs.txt");
    Scanner scan = new Scanner(file);
    while(scan.hasNextLine()) {         
        String passCheck = scan.nextLine();     
        if(passCheck.equals("test2,Test2")) {
            System.out.println("Test1");
        }
        else if(!passCheck.equals("test2,Test2")) {
            System.out.println(passCheck);
            System.out.println("not found");                
        }           
    }       
} 

要了解如何比较 Java 中的字符串,请参阅:

How do I compare strings in Java?