0

私は Java を勉強していて、この演習に 2 日間取り組んできました。私は答えを求めてインターネットを探しましたが、私の問題を解決するのに最適なものを見つけることができないようです:二次元配列。次のような構文のサンプル プログラムをいくつか見てきました。

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

しかし、それらは私がコーディングしようとしているものに適合していないようであり、私はそれを回避することもできません。

  1. すべてのループの後にすべての入力を出力する方法。ユーザーが「Enter number of students」に「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.
    }
}
4

1 に答える 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>();
于 2013-02-20T03:10:03.713 に答える