2016-11-09 49 views
1

我是新来的Java,我正在尝试编写一个扫描某些病人姓名的代码,并要求他们输入(y/n),如果他们是过敏性的,则要打印出来,然后打印出名称为所有患有过敏性葡萄球菌的患者。我刚刚学会了阵列,但我仍然在为Array分配许多值(名称+ y/n)。我需要你的帮助。为数组分配多个值?

非常感谢你:d

+2

请出示一些代码。 – Thilo

+1

考虑有一个对象数组。这些对象将是您设计和编码的类。 –

回答

2

没有办法分配多个值到一个数组,但你可以做一些类以包含多个字段的数组。例如,

public class Patient { 
    public String name; 
    public boolean isAllergic; 
    public Patient(String name, boolean isAllergic) { 
     this.name = name; 
     this.isAllergic = isAllergic; 
    } 
} 
public class Patient_Driver { 
    public static void main(String[] args) { 
     Patient[] patients = new Patient[] { 
     new Patient("Steve", true), 
     new Patient("Mary", false) 
     }; 
     for (int i = 0; i < patients.length; i++) { 
     if (patients[i].isAllergic) { 
      System.out.println(patients[i].name); 
     } 
     } 
    } 
} 

输出:

Steve 
4

你需要创建一个表示你的病人的类。然后你就可以有患者

public class Patient{ 
    private String name; 
    private boolean allergicToGluten; 

    public Patient(String name, boolean allergicToGluten){ 
     this.name = name; 
     this.allergicToGluten = allergicToGluten; 
    } 

    public boolean isAllergicToGluten(){ 
     return allergicToGluten; 
    } 

    public String getName(){ 
     return name; 
    } 
} 

---- 

Patient[] patients = new Patient[patientCount]; 

阵列如果你不知道patientCount那么你需要resizable-array。过敏患者的

ArrayList<Patient> patients = new ArrayList<Patient>(); 
// ... reading 'name' and 'isAllergic' from input 
patients.add(new Patient(name, isAllergic)); 

然后你就可以打印清单

for(p : patients){ 
    if (p.isAllergicToGluten()) 
     System.out.println(p.getName()); 
}