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'值。 –