我在计数器增量上遇到了问题。我不确定我做错了什么。很抱歉,如果这是初学者的错误,但我还没有找到我理解或帮助的解决方案。
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 :(得分: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])) {