2013-10-25 135 views
0

我被卡在一個問題,讓我的計數器增量。我不確定我做錯了什麼。對不起,如果這是一個初學者的錯誤,但我還沒有找到解決方案,我理解或幫助。爪哇計數器不算

public static int duplicates(String[] text, int numWords){ 
      int currentCount = 1; 
      for (int i=0; i<numWords-1; i++){ 
       for (int j=i+1; j<numWords; j++){ 
        if (text[i] == text[j]){ 
         currentCount++; 

        } 
       } 
      } 

      return currentCount; 
     } 

回答

0
if (text[i] == text[j]) 

你的錯誤是在上面的線。

在Java中,您不應該使用==運算符來比較字符串。這將檢查2個字符串是否是相同的對象(身份比較),但您想檢查它們是否具有相同的內容(值比較)。

您需要改用text[i].equals(text[j])

如果您的方法應該處理數組中的null值(即text[i]可以爲null),那麼在調用equals之前,您需要檢查null。

0

更換if (text[i] == text[j]){if (text[i].equals(text[j])){

用這種方式

public static int duplicates(String[] text, int numWords){ 
      int currentCount = 1; 
      for (int i=0; i<numWords-1; i++){ 
       for (int j=i+1; j<numWords; j++){ 
        if (text[i].equals(text[j])){ 
         currentCount++; 

        } 
       } 
      } 

      return currentCount; 
     } 
0

當你比較字符串值,使用equals方法。

if (text[i].equals(text[j])) { 
1

比較Java中使用.equals()方法,而不是「==」操作對象

if (text[i] == text[j])需要更改爲if (text[i].equals(text[j]))

,如果你想忽略的情況下使用.equalsIgnoreCase()代替.equals()