2013-10-25 136 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()