Java 比较两个字符数组并创建不匹配值索引的Int数组
我有两个Java 比较两个字符数组并创建不匹配值索引的Int数组,java,Java,我有两个char数组。一个是考试的正确答案,char[]answers,另一个是char[]studentAnswers。我想比较这两个数组,如果有不正确的答案,我想存储他们出错的问题 questionsMissed = i questionsMissed = studentAnswers[i] public int[] questionsMissed(char[] studentAnswers) { for(int i = 0; i<studentAnswers.length; i
char
数组。一个是考试的正确答案,char[]answers
,另一个是char[]studentAnswers
。我想比较这两个数组,如果有不正确的答案,我想存储他们出错的问题
questionsMissed = i
questionsMissed = studentAnswers[i]
public int[] questionsMissed(char[] studentAnswers)
{
for(int i = 0; i<studentAnswers.length; i++){
if(studentAnswers[i] != answers[i]){
questionsMissed =;
}
}
return questionsMissed;
}
questionsMissed=i
问题M=学生回答[i]
公共int[]问题(字符[]学生回答)
{
对于(int i=0;i您可能需要一个整型的列表来添加索引,然后将其转换为int
数组
public int[] questionsMissed(char[] studentAnswers) {
List<Integer> list = new ArrayList<>();
for(int i = 0; i<studentAnswers.length; i++){
if(studentAnswers[i] != answers[i]){
list.add(i);
}
}
return list.stream().mapToInt(Integer::intValue).toArray();
}
如果使用java-7,则需要再次迭代该列表
public int[] questionsMissed(char[] studentAnswers) {
List<Integer> list = new ArrayList<>();
for(int i = 0; i<studentAnswers.length; i++){
if(studentAnswers[i] != answers[i]){
list.add(i);
}
}
int[] arr = new int[list.size()];
for(int i=0; i<arr.length; i++) {
arr[i]=list.get(i);
}
return arr;
}
public int[]问题(char[]学生回答){
列表=新的ArrayList();
对于(int i=0;i而言,如果使用列表附加索引并在末尾返回int
数组,则更容易:
public int[] questionsMissed(char[] studentAnswers)
{
List<Integer> questionsMissed = new ArrayList<>();
for(int i = 0; i<studentAnswers.length; i++){
if(studentAnswers[i] != answers[i]){
questionsMissed.add(i);
}
}
return questionsMissed.toArray();
}
public int[]问题(char[]学生回答)
{
List questionsMissed=新建ArrayList();
对于(int i=0;然后简单地分配一个与问题数量相同大小的新数组。如果他们答错了问题,你需要做的就是在适当的插槽中为i
的值存储一个1,如果他们答对了问题,则存储一个0。我还没有学习java-8流,因为在我的课程中,我们还没有做到这一点。你能提供一些答案吗当我运行时,它引用了存储它的内存,而不是错误问题的索引。这是教科书要求的。questionsMissed。一个整数数组,包含学生错过的问题的问题编号。对不起,我没有得到你的问题@RossList.toArray()返回对象,但不是int
数组
public int[] questionsMissed(char[] studentAnswers)
{
List<Integer> questionsMissed = new ArrayList<>();
for(int i = 0; i<studentAnswers.length; i++){
if(studentAnswers[i] != answers[i]){
questionsMissed.add(i);
}
}
return questionsMissed.toArray();
}