Я изучаю Java, и я работаю над этим упражнением в течение 2 дней. Я заработал интернет для ответов, но я не могу найти лучший способ решить мою проблему: 1. Как сохранить ввод строк (например, fName, mName // или я делаю это правильно?) в двумерный массив. Я видел некоторые примеры программ с синтаксисом, как:Java 2-мерный массив записи записи учащихся
fName = fName.getText();
lName = lname.getText();
, но они, кажется, не соответствует тому, что я пытаюсь кода и я не могу идти вокруг него либо сог им просто новичок.
- Как распечатать все входные данные после всего цикла. Например, когда пользователь вводит «4» в «Enter number of students», будет напечатана 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.
}
}
Я не уверен, почему вы хотите использовать для этого 2d-массив? Почему бы не создать небольшой объект, в котором хранятся данные о студентах, а затем создать 1d-массив из них или даже создать объект ArrayList для объектов-учеников. –
* «Я видел несколько примеров программ с синтаксисом вроде:' fName = fName.getText(); '" * Действительно, где вы это видели? Я не вижу, как это будет скомпилировано. –
Отказавшись от того, что сказал @DavidSaxon, я не уверен, что вы можете выполнить то, что хотите, с 2D-массивом. Вам либо нужны несколько массивов (6 1D массивов). Или один одномерный массив объектов «Студент». Основываясь на вопросе, это звучит так, будто объекты не могут быть и речи. Если вы ДЕЙСТВИТЕЛЬНО захотите использовать многомерный массив, вы можете сохранить индекс каждой записи в первом измерении и каждое значение в первых 6-секундных измерениях. – supersam654