【发布时间】:2017-08-02 04:44:17
【问题描述】:
我正在尝试编写一个方法,它接受一个字符串,将其转换为一个字符串数组,然后在该数组中搜索一个特定的字符串。这是我的代码:
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");
}
}
}
但是,当我运行此方法时,即使元素在数组中,它也总是返回“未找到”。除非,字符串数组只有我正在寻找的元素。任何想法为什么这不起作用?
【问题讨论】:
-
您的代码(和算法)似乎过于复杂,您的实现与
System.out.println(s.contains(s2) ? "Found" : "Not Found");有何不同? -
艾略特弗里施是正确的。要添加更多,对于区分大小写的方法,
s.toLowerCase().contains(s2.toLowerCase()) ? "Found" : "Not Found"