Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何返回正确的输出? public int scoreUp(字符串[]键,字符串[]答案){ 智力得分=0; for(int i=0;i_Java_String_Equals - Fatal编程技术网

Java 如何返回正确的输出? public int scoreUp(字符串[]键,字符串[]答案){ 智力得分=0; for(int i=0;i

Java 如何返回正确的输出? public int scoreUp(字符串[]键,字符串[]答案){ 智力得分=0; for(int i=0;i,java,string,equals,Java,String,Equals,这可以工作,但它使用==来比较字符串,而不是使用equals方法?为什么?如果(键[i]==answers[i])在有效引用中比较两个字符串 编译器没有理由抱怨,事实上,这是一种逻辑上检查对象是否相同的方法 如果这是比较字符串的正确方法,则是另一个问题 该如何返回正确的输出 如果键数组和应答数组都使用插入字符串,则==对比较有效 这是一个危险的假设,因此程序员应该始终使用equals()来比较字符串,即使interned是有保证的,因为这种保证将来可能会消失,而微妙的隐式假设可能会被忽略。始终使

这可以工作,但它使用==来比较字符串,而不是使用equals方法?为什么?

如果(键[i]==answers[i])
在有效引用中比较两个字符串

编译器没有理由抱怨,事实上,这是一种逻辑上检查对象是否相同的方法

如果这是比较字符串的正确方法,则是另一个问题

如何返回正确的输出

如果
数组和
应答
数组都使用插入字符串,则
==
对比较有效


这是一个危险的假设,因此程序员应该始终使用
equals()
来比较字符串,即使interned是有保证的,因为这种保证将来可能会消失,而微妙的隐式假设可能会被忽略。始终使用
equals()
是代码的未来证明。

这不是编译错误…不应该有编译错误-它不会给你正确的结果,因为它比较的是引用(即指针),而不是内容本身。对不起,我不是说“编译”。我的意思是,如果比较的是对象地址而不是字符串,那么该方法如何处理输入并生成正确的输出?你可以自己测试,复制上面的代码并粘贴到我提供的链接中。对不起,我不是说“编译”。我的意思是,如果比较的是对象地址而不是字符串,那么该方法如何处理输入并生成正确的输出?您可以自己测试它,复制上面的代码并将其粘贴到我提供的链接中。
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;
}