Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 检查两个元素是否相同,每个元素来自不同的字符串数组_Java_Arrays_String_Bluej - Fatal编程技术网

Java 检查两个元素是否相同,每个元素来自不同的字符串数组

Java 检查两个元素是否相同,每个元素来自不同的字符串数组,java,arrays,string,bluej,Java,Arrays,String,Bluej,这段代码的目标是比较两个不同的string[]数组,并检查有多少元素匹配。这将允许这些方法随后查看学生是否通过了测试,并确定他们的字母等级。然而,每一次测试的结果都是,通过测试的学生返回true,字母成绩返回“A”。现在已经正确地比较了元素,我仍然存在每个元素都通过.equals()的问题。 即 answerKey[1]=“B”; 学生回答[1]=“C” 如果要比较这两个元素,它将传递.equals()。 问题在于: if(studentAnswers[cnt] == answerKey[cnt

这段代码的目标是比较两个不同的string[]数组,并检查有多少元素匹配。这将允许这些方法随后查看学生是否通过了测试,并确定他们的字母等级。然而,每一次测试的结果都是,通过测试的学生返回true,字母成绩返回“A”。现在已经正确地比较了元素,我仍然存在每个元素都通过.equals()的问题。 即
answerKey[1]=“B”;
学生回答[1]=“C”
如果要比较这两个元素,它将传递
.equals()。

问题在于:

if(studentAnswers[cnt] == answerKey[cnt])
要比较
String
s和其他对象实例,必须使用
equals
方法:

if(studentAnswers[cnt].equals(answerKey[cnt]))
在两种方法中都必须解决这一问题
listofawers#checkPassOrFail
listofawers#computeGrade

问题在于:

if(studentAnswers[cnt] == answerKey[cnt])
要比较
String
s和其他对象实例,必须使用
equals
方法:

if(studentAnswers[cnt].equals(answerKey[cnt]))

在Java中,当您要比较对象时,必须使用equal(),这必须在
listofawers#checkPassOrFail
listofawers#computeGrade

两种方法中解决


在Java中,当您想要比较对象时,必须使用equal()

我在这里看到一个打字错误:

ListOfAnswers bobAnswerList = new ListOfAnswers(danAnswers);
应该是:

ListOfAnswers bobAnswerList = new ListOfAnswers(bobAnswers);
或者你把丹的好答案告诉鲍勃;)

哦,正如其他人所说,在比较(非空)字符串时,请始终使用
equals
,除非您真的想检查标识(我看到问题已经更新为这样做)。

我在这里看到一个打字错误:

ListOfAnswers bobAnswerList = new ListOfAnswers(danAnswers);
应该是:

ListOfAnswers bobAnswerList = new ListOfAnswers(bobAnswers);
或者你把丹的好答案告诉鲍勃;)



哦,正如其他人所说,在比较(非空)字符串时,请始终使用
equals
,除非您真的想检查标识(我看到问题已经更新为这样做)。

问题是,无论您在studentAnswers列表中放置了什么字母,这两种方法的结果都是真的,并且“A”。我想一个更好的问题是,如果我在if语句中正确比较了每个数组的元素。使用studentAnswers[cnt].equals(answerKey[cnt])为什么使用字符串数组,为什么不使用字符数组?@BjørnBrå那么这应该不是问题。不,但这有必要吗?问题是,无论你在学生答案列表中放置了什么字母,这两种方法的结果都是正确的,而且“A”。我想一个更好的问题是,如果我在if语句中正确比较每个数组的元素。使用studentAnswers[cnt].equals(answerKey[cnt])为什么要使用字符串数组,为什么不使用字符数组?@BjørnBrå那么这不应该是一个问题。不,但有必要吗?该死,你赢了我一秒钟。:)==可能仍然有效,因为单个字符串常量可能被“内部化”。。。但他们这样做更多是出于偶然。然而,我希望每个人在使用原始代码时都能得到零计数…@ClemensKlein Robbenhaar也许这是一个练习,以显示使用
=
等于
之间的区别(因为此代码看起来像家庭作业)。无论如何,如果您将测试更改为从外部源(如文件)读取数据,则
=
将不起作用(在本例中
字符串
池将不起作用)。感谢您提供的.equals()修复,但也有人指出了一个拼写错误,以防万一有人怀疑:我不主张在字符串中使用“==”,除非你真的知道自己在做什么,否则在这里总是使用equals。我只是想指出这里的问题可能是别的。该死,你比我快了一秒。:)==可能仍然有效,因为单个字符串常量可能被“内部化”。。。但他们这样做更多是出于偶然。然而,我希望每个人在使用原始代码时都能得到零计数…@ClemensKlein Robbenhaar也许这是一个练习,以显示使用
=
等于
之间的区别(因为此代码看起来像家庭作业)。无论如何,如果您将测试更改为从外部源(如文件)读取数据,则
=
将不起作用(在本例中
字符串
池将不起作用)。感谢您提供的.equals()修复,但也有人指出了一个拼写错误,以防万一有人怀疑:我不主张在字符串中使用“==”,除非你真的知道自己在做什么,否则在这里总是使用equals。我只是想指出这里的问题可能是其他问题。谢谢你指出,这是我代码的第二个问题。谢谢你指出,这是我代码的第二个问题。