试图在字符串数组中查找String元素

时间:2017-03-11 23:54:42

标签: java arrays string search

我正在尝试编写一个接受String的方法,将其转换为字符串数组,然后在该Array中搜索特定的String。这是我的代码:

public static void ThereOrNaw ( String s, String s2 ){ 

    String[] words = s.split("\\s");
    for (int i = 0; i < words.length; i++) {
        words[i] = words[i].replaceAll("[^\\w]", "");
    }
    for ( int i = 0; i < words.length; i++) {
        if( s2 == words[i] ) {
            System.out.println("Found");
        }
        else if( s2 != words[i] && (i + 1) == words.length) {
            System.out.println("Not Found");
        }
    }
}

但是,当我运行此方法时,即使元素在Array中,它也始终返回“Not Found”。除非,字符串数组只有我正在寻找的元素。任何想法为什么这不起作用?

2 个答案:

答案 0 :(得分:0)

您应该使用equals()而不是==

==比较你的String对象不是按内容,而是通过内存中的真实地址(简单来说)。 因此,如果您使用equals(),则会按内容比较String个对象。 如果您不关心案例,也可以使用equalsIgnoreCase()方法。

还有一个小建议,在你调用s2之前检查null不是equals(),因为你不知道哪个对象客户端将发送给这个方法。

例如:

if (s2 != null && s2.equals(words[i])) { ...

else if (s2 != null && !s2.equals(words[i]) ...

答案 1 :(得分:0)

他表示你不必使用==比较单词,==比较对象

看,我为你做了代码更改:

PATH_TO_JAVA_7_JRE

它让我抓狂:

实测值 找不到