Java 循环不是';输入特定字符串时不中断
当用户输入Java 循环不是';输入特定字符串时不中断,java,string,string-comparison,Java,String,String Comparison,当用户输入pBreak时,应中断while循环。然而,这不起作用,我不明白为什么。谁能帮帮我吗 package main; import java.io.*; import java.util.*; public class TextFiles { public static void main(String[] args) { try { BufferedWriter out = new BufferedWriter(new FileWrit
pBreak
时,应中断while循环。然而,这不起作用,我不明白为什么。谁能帮帮我吗
package main;
import java.io.*;
import java.util.*;
public class TextFiles {
public static void main(String[] args) {
try {
BufferedWriter out = new BufferedWriter(new FileWriter("file.txt"));
Scanner input = new Scanner(System.in);
while (true) {
String line = input.next();
if (line == "pBreak") {
break;
}
out.write(line);
out.newLine();
}
out.close();
} catch (IOException e) {
System.out.println("Error!");
}
}
}
使用
equals
代替=
。考虑,NULL安全<代码>等于
if ("pBreak".equals(line)) {
该代码也适用于:
if (line.equals("pBreak")) {
break;
}
=
运算符将比较两个操作数的引用。
由于line
变量是不同字符串对象的引用,因此在比较时,它将与字符串文字常量引用pBreak
不匹配
if (line .equals("pBreak")) {
break;
}
因此必须使用equals()方法来比较字符串。在此处输入code
更改:
if (line == "pBreak") {
到
=
比较对象引用,.equals(字符串)
比较字符串值
if (line.equals("pBreak")) {