-4

即使文件explicit.txt 只有单词abazure 程序没有进入if 语句,我也遇到了if 语句的问题。程序只是通过 if 语句并再次输出单词 abazure。

import java.util.Scanner;
import java.io.File;
import java.io.PrintWriter;
import java.io.FileNotFoundException;
public class Manzai {

    public static void main(String[] args) {
    String word;
    Scanner input = null;
    PrintWriter output = null;

    try
    {
        input = new Scanner(new File("explicit.txt"));
        output = new PrintWriter(new File("censored.txt"));
    }
    catch(FileNotFoundException e)  
    {

        System.out.println("File explicit.txt was not found");
        System.exit(0);
    }

    while(input.hasNext())
    {
        word = input.next();

        if(word=="abazure")
        {
            word = "a******";
        }

        output.print(word + " ");
    }
    input.close();
    output.close();
}
}
4

3 回答 3

5

==如果是对象,通常只检查两个引用变量是否引用同一个对象。使用 equals() 方法检查字符串是否相等

    if(word=="abazure")

应该

    if("abazure".equals(word))
于 2013-03-23T09:39:01.617 回答
1

尝试

if(word.equals("abazure")){
   // do something
}

字符串#equals()

将此字符串与指定对象进行比较。当且仅当参数不为 null 并且是表示与此对象相同的字符序列的 String 对象时,结果才为真。

于 2013-03-23T09:42:44.640 回答
1

运算符 ,==测试两个对象引用变量是否引用了完全相同的对象实例。

方法 ,.equals()测试被比较的两个对象是否等价——但它们不必是同一对象的完全相同的实例。

因此,您应该使用以下内容来检查相等性:

 if("abazure".equals(word))
于 2013-03-23T09:43:54.913 回答