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方法?怎么样?
答案 0 :(得分:1)
如何返回正确的输出?
如果key
数组和answer
数组都使用 interned 字符串,那么==
对于比较有效。
这是一个危险的假设,所以程序员应总是使用equals()
来比较字符串,即使 interned 得到保证,因为这样的保证可能会消失在未来,可能会忽略微妙的隐含假设。始终使用equals()
是代码的未来保护。
答案 1 :(得分:0)
if (key[i] == answers[i])
在有效参考中比较两个字符串
编译器没有理由抱怨,实际上这可以是一种逻辑方式来检查对象是否相同。
如果这是比较字符串的正确方法是另一个问题。