Java - 调用Arrays.copyOfRange时出现“无法查找符号”错误

时间:2013-03-04 04:06:40

标签: java arrays

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 intnumber_missed也是{{1}} INT。

我很难过为什么它不起作用。

2 个答案:

答案 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()