查看文件是否在Java中读取某些内容

查看文件是否在Java中读取某些内容,java,string-matching,Java,String Matching,我创建了一个名为doc.txt的文档,并在其中编写了blaha。我写了一个程序,看看上面是否写着布拉哈 File file = new File("C:/Users/Public/doc.txt"); if (file.exists()){ FileReader fr = new FileReader(file); LineNumberReader ln = new LineNumberReader(fr); while (ln.getLine

我创建了一个名为doc.txt的文档,并在其中编写了blaha。我写了一个程序,看看上面是否写着布拉哈

    File file = new File("C:/Users/Public/doc.txt");
    if (file.exists()){
     FileReader fr = new FileReader(file);
     LineNumberReader ln = new LineNumberReader(fr);
        while (ln.getLineNumber() == 0){
          String s = ln.readLine();
          System.out.println(s);
          if(s=="blaha"){
              System.out.println("Match");
          }else{
              System.out.println("Nomatch");
          }
    }
    }

当我运行程序时,它总是说Nomatch。这是为什么?

要比较字符串是否值相等,两个对象是否具有相同的值,请执行以下操作:

s.equals("blaha")

==运算符测试引用标识,以确定两个对象是否为同一对象。大多数时候,你对平等感兴趣。

因为布拉哈!=巨魔脸。此外,您还需要使其更健壮,以处理尾随空白。您可能希望在字符串上使用trim。另外,请使用String.equals或String.contains。

首先始终使用.equals。没有如果也没有但是。阅读此文了解详细信息:

将字符串值与String的equals方法进行比较,而不是与==运算符进行比较。很抱歉,当我最初使用trollface时,但不想将其发布到internet上。此外,有关更多术语,请使用==表示引用相等,使用equals表示值相等。