bufferedreader Java二维数组学生记录输入
我正在学习Java,我已经做了两天这个练习了。我在网上搜寻答案,但似乎找不到解决我问题的最佳答案: 1.如何存储字符串输入(比如fName、mName//或者我做得对吗?)变成一个二维数组。我见过一些语法如下的示例程序:
fName = fName.getText();
lName = lname.getText();
但它们似乎不符合我试图编写的代码,我也无法绕过它,因为我只是一个乞丐
- 如何打印所有循环之后的所有输入。就像用户在“输入学生人数”中输入“4”一样,将打印4个学生信息李>
以下是我最初的非工作代码:
import java.io.*;
public class Main {
public static void main(String[] args)throws IOException{
BufferedReader datain = new BufferedReader (new InputStreamReader (System.in));
String fName, lName, course, yrLevel, bDate;
int age;
int arr [] [];
int size;
System.out.print("Enter number of students: \n");
size = Integer.parseInt(datain.readLine());
arr = new int [size][];
for(int a = 0; a < arr.length; a++){
System.out.print("Enter first name: \n");
fName = datain.readLine();
/*insert code here to store fName to two dimensional array
like this one? arr [0] = new int [a]; */
System.out.print("Enter last name: ");
lName = datain.readLine();
System.out.print("Enter course: ");
course = datain.readLine();
System.out.print("Enter year level: ");
yrLevel = datain.readLine();
System.out.print("Enter age: ");
age = Integer.parseInt(datain.readLine());
}
/* desired output be like:
Student 1
Name: Bat Man
Year Level: Graduate School
Birthdate: Feb. 20, 2012
Age: 7
Student 2
Name: Super Man
Year Level: Masteral
Birthdate: Jan. 1, 2012
Age: 8
*/
System.out.println("Name: " +arr[0][0] + " " + arr[0] [1]); //just me showing my non-working idea of printing them.
}
}
# 1 楼答案
与其使用多维数组,不如创建一个存储学生详细信息的小对象。像这样:
然后从用户输入中获取数据,并使用它构建一个学生。然后学生可以存储在一个数组中:
或者更好的是,您可以将学生存储在一个数组列表中,这样您就不必知道所需的学生人数: