if语句不读取数组中的字符串 - tokens [i]因此if之后的条件不执行。无法读取字符串“hot”。为什么会这样?请帮忙!感谢。
public static void main(String[] args){
String str = "Wow! It's getting realy hot in here." ;
String delims = "[ .,?!/><;:'_!`~/$/@/#/%/&/|/[/]/{/}/)/(]+";
String[] tokens = str.split(delims);
for (int i = 0; i < tokens.length; i++){
if (tokens[i] == "hot"){
System.out.println("Found!");
break;
}
else {
System.out.println("Not found!");
}
}
}
答案 0 :(得分:6)
使用String.equals(String otherString)
功能比较字符串。
if (tokens[i].equals("hot")){
不是==
运营商。
原因是==
只是比较对象引用/原语,而String的.equals()
方法检查相等。
答案 1 :(得分:1)
这不起作用,因为您使用==
- 运算符来比较String
。
==
- 运算符检查对象引用是否相同。情况并非如此,因为"hot"
与tokens[i]
的引用不同。
Object.equals()
比较对象的值。对于String
,它会比较字符组合是否相同。有关详细信息,请查看API。
所以,请使用tokens[i].equals(String str)
。
如果区分大小写无关紧要,请使用此方法:string.eqaulsIgnoreCase(String anotherString
)。