【发布时间】:2018-09-19 01:21:49
【问题描述】:
我要做的是在文本文件中挑选出某些行,并根据文本文件中人的性别分别打印它们。依次是 ID、姓名、性别和年龄。
文本文件中的示例行(男性):1 John m 18
文本文件中的示例行(女性):3 Susan f 21
这是我目前的代码。
import java.util.*;
import java.io.*;
class person {
String id;
String name;
String gender;
int age;
}
public class arrayList3 {
public static void main(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(new File("student.txt"));
ArrayList<person> studentList = new ArrayList<>(); //all types
while(input.hasNextLine()) {
person p = new person();
p.id = input.next();
p.name = input.next();
p.gender = input.next();
p.age = input.nextInt();
studentList.add(p);
}
//prints list of female students
System.out.println("== Female Student List ==");
for (int k = 0; k < studentList.size(); k++){
if(studentList.contains("f")){
System.out.println(studentList.get(k).id +" "+ studentList.get(k).name +" "+ studentList.get(k).gender +" "+ studentList.get(k).age);
}
}
System.out.println();
//prints list of male students
System.out.println("== Male Student List ==");
for (int k = 0; k < studentList.size(); k++){
System.out.println(studentList.get(k).id +" "+ studentList.get(k).name +" "+ studentList.get(k).gender +" "+ studentList.get(k).age);
}
input.close();
}
}
我尝试对女学生列表使用 if 语句,但这并没有打印任何内容。对于男学生列表,它只打印整个文本文件,而不是只打印男学生。
【问题讨论】:
-
if (studentList.get(k).gender.equals("F"))... -
谢谢!我知道这很简单。
-
唉!要是他们都那么简单就好了……(叹气)