Java Buffered Reader字符串比较提供错误的输出

时间:2015-10-18 09:20:27

标签: java

这是我从文本文件中读取文本的Java代码

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class checking {
public static void main(String[] args) throws IOException {

// Create a BufferedReader from a FileReader.
BufferedReader reader = new BufferedReader(new FileReader("pw.txt"));

// Loop over lines in the file and print them.
while (true) {
    String line = reader.readLine();
    if (line == null) {
    break;
    }

    System.out.println(line); // The output is abc
    if(line=="abc"){
        System.out.println("true");
    } else {
        System.out.println("false"); //However it show false...
    }
}

// Close the BufferedReader.
reader.close();
}
}

在pw.txt里面,只有一行,其中唯一的文字是abc。
我做了一个if语句来检查该行是否等于“abc”但是输出是假的......我不太明白。
我犯了什么愚蠢的错误吗?

3 个答案:

答案 0 :(得分:1)

这是java初学者犯的巨大错误请参考http://www.javatpoint.com/string-comparison-in-java网站,了解java中的==和.equals()之间的区别

答案 1 :(得分:0)

更改比较2个字符串的方式:

if (line.equals("abc")) {

答案 2 :(得分:0)

使用line.equals("abc")代替line=="abc"

参考:What's the difference between ".equals" and "=="?