0
說我有兩個字符串:如何計算Java中的兩個字符串中的相互單詞?
String s1 = "My name is Alex."
String s2 = "My name is Nick."
我想要的程序來算的話互助和返回值。對於這些字符串,返回的值將是3,因爲這三個詞都有共同點:我的名字是。出於某種原因,在我的程序,返回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;
}
您使用==比較字符串 - 你應該使用'.equals' – jackarms
我會做的方式,在Java 8+,有點像'回報(INT )Stream.of(a).filter(x - > Stream.of(b).anyMatch(y - > x.equals(y)))。count();' - 或者返回一個'long'並刪除。我也更喜歡'\\ s +'作爲正則表達式(通過''「'')。最後,不要使用'=='來比較'Object'值。 –