public int scoreUp(String[] key, String[] answers) {
int score = 0;
for (int i = 0; i < key.length; i++) {
if (key[i] == answers[i])
score += 4;
else if (answers[i] != "?" && answers[i] != key[i])
score--;
}
return score;
}
这适用于http://codingbat.com/prob/p180365,但它使用==来比较字符串而不是equals方法吗?怎么来的?这是如何返回正确的输出?
这不是一个编译错误 – Tunaki
不应该有一个编译错误 - 它只是不会给你正确的结果,因为它比较引用(即指针),而不是内容本身 – noamgot
对不起,我没有'不是'编译'。我的意思是,如果方法比较对象地址而不是字符串,方法如何处理输入并生成正确的输出? 您可以亲自测试,复制上面的代码并将其粘贴到我提供的链接中。 – Nico