Java 无法将输出打印为(名称和等级)

Java 无法将输出打印为(名称和等级),java,arrays,string,parseint,Java,Arrays,String,Parseint,我正试图打印姓名+成绩,但不知怎的,我无法打印。我可以尝试删除成绩,然后姓名是唯一会打印的,但我需要同时打印姓名和成绩(姓名+成绩) publicstaticvoidmain(字符串[]args){ 扫描仪输入=新扫描仪(系统输入); 系统输出打印(“输入学生人数:”); int totalStudents=Integer.parseInt(in.nextLine()); String[]studentNames=新字符串[totalStudents]; System.out.println(“

我正试图打印
姓名+成绩
,但不知怎的,我无法打印。我可以尝试删除成绩,然后姓名是唯一会打印的,但我需要同时打印姓名和成绩(姓名+成绩)

publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
系统输出打印(“输入学生人数:”);
int totalStudents=Integer.parseInt(in.nextLine());
String[]studentNames=新字符串[totalStudents];
System.out.println(“输入学生姓名:”);
对于(int j=0;j
如果您可以确保学生姓名数组和成绩数组具有相同的长度(您应该这样做),那么您可以轻松地按索引进行迭代

for (int x = 0; x < grades.length; x++) {
    System.out.print(names[x]);
    System.out.println(grades[x]);
}
for(int x=0;x

也就是说,由于名称和等级属于一起(学生a的等级与stundent a的名称没有任何意义),因此面向对象的方法将创建一个将两者结合在一起的类。由于您显然刚刚开始使用java,我强烈建议您从一开始就使用它。

首先不要调用
studentNames.length
grades.length
每次您都可以简单地使用
totalStudents
,因为它代表
数组和
长度

请注意,
gardes
数组应为
double
类型,而不是
int

然后在填充两个
数组之后,您可以使用:

for (int k=0; k < totalStudents ; k++) {
    System.out.println(names[k] + " : " + grades[k]);
}

好主意。对(int index=0;index
使用
,然后分别为每个元素编制索引(即
studentNames[index]
grades[index]
for (int k=0; k < totalStudents ; k++) {
    System.out.println(names[k] + " : " + grades[k]);
}
for (Map.Entry<String, double> entry : yourMap.entrySet()) {
    System.out.println(entry.getKey() + " : " + entry.getValue());
}