2016-11-17 13 views
0

は、私は2つの文字列を持っていると言う:Javaで2つの文字列の相互単語を数えるには?

String s1 = "My name is Alex." 

String s2 = "My name is Nick." 

私はプログラムが相互の単語をカウントした値を返すようにしたいです。これらの文字列では、3つの単語が共通しているため、返される値は3です。my、name、isです。 jackarmsはあなたが.equalsを使用する場所の文字列を比較するために==を使用している、言ったように、いくつかの理由で、私のプログラムでは、返される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; 
} 
+2

を試してみてください - あなたは '私はこれを行うだろう.equals' – jackarms

+1

方法を使用する必要がありますが、Javaの8+で、リターン'のようなもの(intです);) - 'long'を返し、キャストを取り除いてください。 。私は正規表現として '\\ s +'を( '' ''の上に)好むでしょう。最後に、 '=='を使用して 'Object'値を比較しないでください。 –

答えて

-1

です。 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; 
関連する問題