初学者Java问题(字符串输出)

bit*_*moe 3 java

所以我正在读取一个文件的输入,该文件说这些行:

       NEO
You're the Oracle?
       NEO
Yeah.
Run Code Online (Sandbox Code Playgroud)

所以我只想输出他的实际线,而不是它所说的NEO.所以我尝试了这个:

if(line.trim()=="NEO")
    output=false;
   if (output)
    TextIO.putln(name + ":" + "\"" + line.trim() + "\""); // Only print the line if 'output' is true
Run Code Online (Sandbox Code Playgroud)

但那没有成功.它仍然打印NEO.我怎样才能做到这一点?

Sea*_*ean 7

在比较Java中的字符串时,您必须使用该equals()方法.这就是原因.

if ( "NEO".equals(line.trim() )
Run Code Online (Sandbox Code Playgroud)


Dav*_*and 5

我想你正在寻找line.trim().equals("NEO")而不是line.trim() == "NEO"

也就是说,你可以output通过改变来摆脱变量

if(!line.trim().equals("NEO"))
{
    TextIO.putln(name + ":" + "\"" + line.trim() + "\""); // Only print the if it isn't "NEO"
}
Run Code Online (Sandbox Code Playgroud)