如何在java中比较两个数组的字符串?

时间:2013-09-21 12:06:54

标签: java

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!");
        }
   }     

} 

2 个答案:

答案 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)。