Java 如何检查if语句中的两个字符串是否相等?

Java 如何检查if语句中的两个字符串是否相等?,java,Java,我想知道字符串的某个部分是否等于某个东西。代码如下: String words[] = resulter.split(" "); secondword = words[1]; if (secondword == "is"){ isarepresent = true; } 例如,字符串结果器可以等于“Someone is名人”,然后应该检测第二个单词是“is”。但是,由于某些原因,if语句似乎不起作用。相等运算符(=)检查两个对象在内存中是否具有相同的位置

我想知道字符串的某个部分是否等于某个东西。代码如下:

String words[] = resulter.split(" ");
    secondword = words[1];
    if (secondword == "is"){
        isarepresent = true;
    }
例如,字符串结果器可以等于“Someone is名人”,然后应该检测第二个单词是“is”。但是,由于某些原因,if语句似乎不起作用。

相等运算符(=)检查两个对象在内存中是否具有相同的位置。 要检查两个字符串是否相等,请使用
equals
equalsIgnoreCase()
方法

if(secondword.equals("is")){}

if(secondword.equalsIgnoreCase("Is")){}

您不应使用
==
进行
字符串比较。它将检查直接内存地址


改为使用:
if(secondword.equals(“is”)
只有两行添加了两行有用的行。比较字符串有两种主要方法:

str1.equals(str2)

str1.contentEquals(str2)
对于第一个实例(实际上也是
equalsIgnoreCase()
),您将比较
String
的两个实例,而对于第二个实例,您可以将
String
CharSequence
的任何实现实例进行比较。因此,根据要比较的内容,您应该使用第一个或第二个实例

将文字放在开头也是一种很好的做法,这样可以确保不会得到NPE

"str".equals(strVar)

嗨,詹姆斯,欢迎来到StackOverflow。请注意:在决定提问之前,你真的应该进行谷歌搜索。这个问题已经在这里被问了好几次了:)谢谢。它的工作非常出色!使用“是”。等于(第二个词);我不同意你不能这样做的观点。如果字符串是
intern
ed==就行了,而且实际上没有什么能阻止你这么做。@Quirliom True,我编辑我的帖子是为了反映你不应该这么做。完整的解释确实要复杂得多,但我认为OP不需要知道它。你可以将其写成
isarresentation=secondword.contentEquals(“is”)
"str".equals(strVar)