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)