【发布时间】:2016-05-07 13:15:32
【问题描述】:
我正在尝试创建一个数组,允许我使用存储的元素创建另一个单独的数组。
这是我目前所拥有的:
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
}
在此,我有double [] names[i] = new double [5]; 行,它应该在索引i 处获取names[] 数组的值并将其转换为长度为5 的数组。所以如果names[1] = Ann,它应该创建一个长度为 5 的数组Ann[]。但是,它会抛出一个非法的表达式开始错误。
我也尝试使用临时变量来帮助声明多个数组,但是除了表达式的非法开头之外,我还遇到了更多错误。
显然你不能使用数组或变量来声明其他数组。
有什么方法可以在不使用多维数组的情况下解决这个问题?
提前致谢。
【问题讨论】:
-
如果你解释一下五元素数组的用途,我们或许可以给你一些选择。
-
@AMACB 提问者特别想避免使用多维数组。
-
如果您能解释一下您认为这句话的作用会很有帮助:
double [] names[i] = new double [5];,特别是您理解double的含义。 -
@JimGarrison 提问者认为它会定义一个由
names[i]的值命名的double数组(即"Ann"->Ann[])。 -
所以真正需要的是
Map<String,Double[]>,或者更可能是Map<String,Student>,以便适当定义Student。