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")) {