Java二维数组学生记录输入

问题描述 投票:0回答:1

我正在学习Java,现在我已经在这个练习上工作了2天。我已经搜索了互联网的答案,但我似乎找不到最好的解决我的问题的方法是:1。如何存储字符串输入(如fName,mName //或我这样做吗?)到二维数组。我见过一些示例程序的语法如下:

fName = fName.getText();
lName = lname.getText();

但它们似乎不适合我正在尝试编码的东西,我无法绕过它,因为我只是一个乞丐。

  1. 如何在所有循环事物之后打印所有输入。就像当用户在“输入学生数”中输入“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.
    }
}
java bufferedreader
1个回答
1
投票

您应该创建一个存储学生详细信息的小对象,而不是使用多维数组。像这样:

public class Student {

    public String name;
    public String yearLevel;
    //etc...

    //constructor
    public Student(String name, String yearLevel, etc...) {
        this.name = name;
        this.yearLevel = yearLevel;
        //etc...
    }
}

然后从用户输入中获取数据并使用它构建学生。然后学生可以存储在一个数组中:

Student[] students = new Student[numberOfStudents];

或者更好的是,您可以将学生存储在数组列表中,然后您不必知道所需的学生数量:

ArrayList<Student> students = new ArrayList<Student>();
© www.soinside.com 2019 - 2024. All rights reserved.