说我有两个字符串:
String s1 = "My name is Alex."
String s2 = "My name is Nick."
我希望程序计算相互的单词并返回值。使用这些字符串,返回的值将是3,因为3个单词都有共同点:my,name,is。出于某种原因,在我的程序中,返回的num值始终为0.
public static int sameWord(String s1, String s2) {
int num = 0;
String[] a = s1.split(" ");
String[] b = s2.split(" ");
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < b.length; j++) {
if (a[i] == b[j]) {
num++;
}
}
}
return num;
}
答案 0 :(得分:-1)
正如jackarms所说,你正在使用==来比较你应该使用的字符串.equals。见this。
尝试
int num = 0;
String[] a = s1.split(" ");
String[] b = s2.split(" ");
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < b.length; j++) {
if (a[i].equals(b[j])) {
num++;
}
}
}
return num;