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

4 回答 4

1

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

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

如果你想忽略大小写使用.equalsIgnoreCase()而不是.equals()

于 2013-10-25T04:22:59.873 回答
0
if (text[i] == text[j])

你的错误在上面一行。

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

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

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

于 2013-10-25T04:21:25.770 回答
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;
        }
于 2013-10-25T04:21:27.770 回答
0

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

if (text[i].equals(text[j])) {
于 2013-10-25T04:22:31.357 回答