Java Counter不计算在内

时间:2013-10-25 04:19:26

标签: java counter increment

我在计数器增量上遇到了问题。我不确定我做错了什么。很抱歉,如果这是初学者的错误,但我还没有找到我理解或帮助的解决方案。

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

4 个答案:

答案 0 :(得分:1)

要比较java中的对象,请使用.equals()方法而不是“==”运算符

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

如果您想忽略该案例,请使用.equalsIgnoreCase()代替.equals()

答案 1 :(得分:0)

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

你的错误就在上面。

在Java中,您不应使用==运算符来比较字符串。这将检查2个字符串是否是同一个对象(身份比较),但是你想检查它们是否具有相同的内容(值比较)。

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

如果你的方法应该处理数组中的null值(即text[i]可以为null),那么在调用equals之前你需要检查null。

答案 2 :(得分: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;
        }

答案 3 :(得分:0)

比较字符串值时,请使用equals方法。

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