Is it possible to declare an array with an array?
本问题已经有最佳答案,请猛点这里访问。
我正在尝试创建一个数组,它允许我使用存储的元素创建另一个单独的数组。
以下是我目前为止的情况:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Scanner reader = new Scanner(System.in); //variables int NumberOfStudents; System.out.print("How many students are in the class?:"); NumberOfStudents = reader.nextInt(); reader.nextLine(); //objects String [] names = new String[NumberOfStudents]; //Creates an array based on the number of students //input for (int i = 0; i < NumberOfStudents; i++){ System.out.print("What is student number" + (i+1) +"'s name?:"); names[i] = reader.nextLine(); double [] names[i] = new double [5]; //declares each student name as a separate array } |
在这里,我有一行
我试图使用一个临时变量来帮助声明多个数组,但是除了非法的表达式开头之外,我得到了更多的错误。
所以显然,您不能使用数组或变量来声明其他数组。
是否有任何方法可以在不使用多维数组的情况下修复此问题?
事先谢谢。
要做到这一点,不使用多维数组是通过创建一个
学生班:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class Student(){ String fname, lname; int grade; public Student(String name){ String[] firstLast = name.split(""); fname = firstLast[0]; if(firstLast.length>1) lname = firstLast[1]; } public string setFName(String nameOfStudent){ fname = nameOfStudent; return fname; } // rest of code implementation } |
在您当前的课程中:
1 | Student array[] = new Student[NumberOfStudents]; |
那么你就可以利用你已经拥有的想法
2看起来您正在尝试使用刚刚输入的字符串作为变量名创建数组,如下所示:
1 | double[] <student_name> = new double[5]; |
不幸的是(或者幸运的是),您不能从另一个变量的内容中创建变量。
相反,您可以执行以下操作之一:
- 按照KevinMee在回答中的建议去做,并使用
Student 课程。 - 使用
Map ,就像JimGarrison在对你的问题的评论中建议的那样。 - 使用二维数组。
如果您想尝试二维数组,您应该;在当前类中,定义一个二维数组。
1 | double[][] studentInfo = new double[NumberOfStudents][5]; |
然后可以这样引用数组:
1 | studentInfo[i][j] = aDoubleNumber; |