import java.util.*;
public class DriverExam
{
private String[] answers = {"B", "D", "A", "A", "C", "A", "B", "A", "C", "D", "B", "C", "D", "A", "D", "C", "C", "B", "D", "A"};
private String[] input_validation = {"A", "B", "C", "D"};
private String[] student_answers = new String[20];
private int[] missed = new int[20];
private int[] copy_missed;
private boolean pass=true;
private int number_missed = 0;
Scanner kb = new Scanner(System.in);
String input;
private String input()
{
input = kb.nextLine();
while(!(input.equalsIgnoreCase("A")||input.equalsIgnoreCase("B")||input.equalsIgnoreCase("C")||input.equalsIgnoreCase("D")))
{
System.out.print("Please enter either A, B, C or D: ");
input = kb.nextLine();
}
return input;
}
public boolean passed(String[] student_answers)
{
int v=0;
for(int i=0; i<answers.length; i++)
{
if(!(answers[i].equalsIgnoreCase(student_answers[i])))
{
number_missed++;
missed[v]=i;
v++;
}
}
if(number_missed>5)
{
pass=false;
}
return pass;
}
public String[] setStudentAnswers()
{
int question = 1;
for(int i=0; i<student_answers.length; i++)
{
System.out.print("Enter the answer for question "+ question + ": ");
student_answers[i]=input();
question++;
}
return student_answers;
}
public int totalCorrect()
{
int correct = 20 - number_missed;
return correct;
}
public int totalIncorrect()
{
return number_missed;
}
public int[] questionsMissed()
{
int[] copy_missed = Arrays.copyOfRange(missed, 0, number_missed);
return copy_missed;
}
}
更具体地说,在方法questionsMissed()
中,cannot find symbol
时出现Arrays.copyOfRange
错误。
我检查了语法,我似乎是正确的missed
int[]
,0
int
和number_missed
也是{{1}} INT。
我很难过为什么它不起作用。
答案 0 :(得分:0)
jGRASP主页声明最新版本仅需要运行JDK 1.5,而在JDK 1.6之前不会添加Arrays.copyOfRange()
。见证docs for Arrays in 1.5中缺少任何此类方法。我对jGRASP一无所知,但我猜你只是在引擎盖下运行一个旧的JDK,因为该错误肯定是因为该方法不可用。
答案 1 :(得分:0)
在JDK 1.5+中你应该使用
System.arraycopy()
而不是
Arrays.copyOfRange()