查看文件是否用Java读取内容

时间:2013-11-25 20:56:51

标签: java string-matching

我创建了一个名为doc.txt的文档,在其中我写了“blaha”。我写了一个程序,看它是否说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。这是为什么?

3 个答案:

答案 0 :(得分:6)

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

s.equals("blaha")

==运算符测试引用身份(两个对象是否相同)。大多数时候,你对平等感兴趣。

答案 1 :(得分:1)

因为blaha!= trollface。此外,您将希望使其更加健壮以处理尾随空白区域。你可能想在字符串上使用trim()。另外,使用String.equals()或string.contains()。

答案 2 :(得分:0)

首先总是使用.equals。不,如果没有但是没有。阅读本文了解详情:http://www.coderanch.com/how-to/java/AvoidTheEqualityOperator