我真的很困惑如何访问一个特定学生的年龄,学生的所有信息都存储在一个文本文件中.我正在读取文本文件并将信息存储到一个学生对象中,只需要访问此文件的帮助.
public class Student {
private String lName;
private int idNumber;
private int age;
public Student() {
lName = "";
idNumber = 0;
age = 0;
}
public Student(String l, int i, int a) {
lName = l;
idNumber = i;
age = a;
}
public void setName(String last) {
lName = last;
}
public String getName() {
return lName;
}
public void setIdNum(int num) {
idNumber = num;
}
public int getIdNum() {
return idNumber;
}
public void setAge(int a) {
age = a;
}
public int getAge() {
return age;
}
}
我的文本文件看起来像这样:这些信息存储在并行数组列表中.我不太明白如何将其实现到一个对象中,从而将其传递到我的第二个承包方法中.
Josh 2134 19
Smith 5256 21
Rogers 9248 19
Andrew 7742 20
以下是我try 过的;
public static void main(String[] args) {
String file = "studentData.txt";
Scanner reader = new Scanner(file);
ArrayList<Student> users = readFile(file);
Student s = new Student();
users.add(s);
Scanner input = new Scanner(System.in);
//user enters idNumber to display age
System.out.println("Enter ID Number"); //exception handling to be added
int idNum = input.nextInt();
//this part is where I'm stuck
for(int i = 0; i < users.get(i) i++){
if(idNum == users.get(i)){
users.setAge(i);
}
}
System.out.println(users.getAge());
}
//METHOD FOR READING FILE
public static ArrayList<Student> readFile(String file)throws IOException{
Scanner reader = new Scanner(new File(file));
ArrayList<Student> list = new ArrayList<Student>();//creates ArrayList with student object
reader.nextLine();//skips first line
while(reader.hasNext()){//splits all text in the file into words
String lName = reader.next();
int idNum = reader.nextInt();
int age = reader.nextInt();
Student users = new Student(lName ,idNum, age);
list.add(users);
}
return list;
}//end method
我认为解决这个问题的唯一方法是读取文件3次,将名称、idnum和年龄存储在单独的ArrayList中.然后使用这个单独的数组列表来存储年龄.得到(我).我相信那是非常不必要的??