Java 仅从数组中打印女生

Java 仅从数组中打印女生,java,arrays,Java,Arrays,如何从数组中打印出仅限女生的学生。我当前的代码打印出所有的学生。性别变量为布尔值(男性=真,女性=假) 公共类SMSMain{ /** * *@param args */ 公共静态void main(字符串[]args)引发IOException{ 学生[]=新生[3]; //创建学生对象的实例 //设置每个学生的不同属性。 学生[0]=新学生(); 学生[0]。设置新ID(10); 学生[0]。设置名称(“Maria”); 学生[0]。性别(女性); 学生[1]=新学生(); 学生[1].s

如何从数组中打印出仅限女生的学生。我当前的代码打印出所有的学生。性别变量为布尔值(男性=真,女性=假)

公共类SMSMain{
/**
* 
*@param args
*/
公共静态void main(字符串[]args)引发IOException{
学生[]=新生[3];
//创建学生对象的实例
//设置每个学生的不同属性。
学生[0]=新学生();
学生[0]。设置新ID(10);
学生[0]。设置名称(“Maria”);
学生[0]。性别(女性);
学生[1]=新学生();
学生[1].setNewId(11);
学生[1]。设置名称(“标记”);
学生[1],性别(男);
学生[2]=新学生();
学生[2].setNewId(12);
学生[2]。设置名称(“Denise”);
学生[2]。性别(女性);
System.out.println(“\n\n女生为:”);
对于(int i=0;i
for(int i=0;i

使用
if
条件检查该学生是否为女性

System.out.println("\n\nFemale students are:");  
for(int i=0; i < student.length; i++){ 
    if (student[i].getGender() == false) {
       System.out.println( "Student " + (i+1) + " Name :: " + student[i].getName() + ", Student ID :: " + student[i].getIdNumber());
    }
}
System.out.println(“\n\n女生是:”);
对于(int i=0;i
这段代码遍历数组中的每个对象,检查getGender返回的值是否设置为false(也称为female)。如果此条件为true,则执行print语句

顺便说一句,正如其他海报所指出的,在这里使用“性别”这个名字是很容易引起误解的,像
isMale()
isFemale()
这样的方法会根据人的性别返回布尔值,这将是一个更好的解决方案。

类似这样的方法:

for (Student stud: student) {
  if (!stud.getGender()) {
     System.out.println(stud.getName());
  }
}

稍微整理过的版本

  • 将实际学生存储在局部变量中
  • 检查
    null
    学生以避免null指针异常
  • 使用printf方法
  • 增加了一个额外的方法


(我很快发明了这个方法,因为没有人真正理解女人没有性别;)

你熟悉
if
语句吗?一些
if(!student[I].getGender())
check怎么样?顺便说一句,这个名称确实有误导性,你可以改为使用enum或将名称改为
setMale(…)
isMale()
。显然,女性不是性别。@Max让我们希望没有女性读到…;@Max显然,男性没有大脑-哈奇,qed:-)托马斯希望你可以…:-)(1)不要给出答案。(2)没有解释-他不可能仅仅从一个代码中学到任何东西(1)不要给出答案。(2)没有解释-他不太可能从一个只会打印所有男生的代码中学到任何东西。更正了。但我认为打印哪个性别并不重要。我的意思是我想展示这个想法。
System.out.println("\n\nFemale students are:");  
for(int i=0; i < student.length; i++){ 
    if (student[i].getGender() == false) {
       System.out.println( "Student " + (i+1) + " Name :: " + student[i].getName() + ", Student ID :: " + student[i].getIdNumber());
    }
}
for (Student stud: student) {
  if (!stud.getGender()) {
     System.out.println(stud.getName());
  }
}
for (int i = 0; i < student.length; i++) {
  Student student = student[i];
  if (student != null && isFemale(student)) {
    System.out.printf("Student %s Name :: %s, Student ID :: %s%n", 
                            i+1, student.getName(), student.getId());
  }
}
private boolean isFemale(Student student) {
  return (student.getGender() == false);
}