为什么if语句永远不会等于“0”或“1”?我打印变量“line”,它是“0”或“1”。但IF声明永远不会奏效。

时间:2016-02-20 13:31:32

标签: java if-statement

/**
 * @(#)StringToFile.java
 *
 *
 * @author 
 * @version 1.00 2016/2/14
 */
package StringToFile;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;


public class StringToFile {

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

 read("0");
}

public static String read(String msg2) throws IOException {

这是文本文件的硬编码读取

List<String> lines = Files.readAllLines(Paths.get("g:/dungeontreasure/DMJ-solito-v2.12/test.txt"), Charset.defaultCharset());
for (String line : lines) {

msg2被分配从文本文件中读取的内容。我希望。

msg2 = line; //  I assign msg2 what was read from file.

现在,我打印出文本文件的内容。这部分有效。

System.out.println("line read:" + line); // I print out line

现在我检查文本文件中是否包含“1”,但这不起作用。

if (msg2==("1")) {
    System.out.println("check read: " + msg2);  // check to see what we read. But this never works.

        }

现在我检查文本文件中是否有“0”,但它永远不会有效。

if (msg2==("0")) {
System.out.println("check read: " + msg2); // check to see what we read. 



        }

}  

return(msg2);
}

}

1 个答案:

答案 0 :(得分:0)

如果您需要比较对象,请始终使用方法.equals(),而不是运算符==

对同一个对象(内存中的相同位置)使用运算符==测试,而不是方法.equals()检查相同的内容。

所以而不是

if (msg2==("1")) {

你的代码应该是

if (msg2.equals("1")) {