-1

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

} 
4

2 回答 2

6

使用该String.equals(String otherString)函数比较字符串。

if (tokens[i].equals("hot")){

不是==运营商。

原因是==只比较对象引用/基元,其中 String 的.equals()方法检查相等性。

于 2013-09-21T12:08:25.243 回答
1

这不起作用,因为您使用==-Operator 来比较Strings。

-Operator==检查对象引用是否相同。情况并非如此,因为与 ."hot"的引用不同tokens[i]

Object.equals()比较对象的值。对于 a String,它比较字符组合是否相同。检查API以获取更多信息。

所以,使用tokens[i].equals(String str).

如果区分大小写无关紧要,请使用此方法:) string.eqaulsIgnoreCase(String anotherString

于 2013-09-21T12:14:21.550 回答