如何计算Java中2个字符串中的相互单词?

时间:2016-11-17 04:14:26

标签: java arrays string

说我有两个字符串:

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; 
}

1 个答案:

答案 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;