我明天正在参加期末考试,所以我正在练习一些问题。但我被困在这个问题上。我得到一个人类档案和一半完成的quiz10文件,我必须填写。测验10代码是中途完成(给定的)。
我需要实现一个函数findPersonWhoseNameStartWith
,它返回列表中以A开头的人的名字。但我不知道如何。
想要输出:
结果:四月,亚当
public class Person{
private int age;
private String name;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public int getAge(){
return age;
}
public String getName(){
return name;
}
public String toString(){
return "" + name;
}
}
一半给定代码(我已说明我尝试了哪一部分):
import java.util.*;
public class Quiz10{
public static void main(String[] args){
ArrayList<Person>list=new ArrayList<Person>();
list.add(new Person("April",9));
list.add(new Person("Adam",3));
list.add(new Person("bil",9));
list.add(new Person("cpril",9));
list.add(new Person("dpril",9));
ArrayList<Person>result=findPersonWhoseNameStartWith(list,"A");
System.out.println("result:");
//START DOING FROM HERE
for(int i=0;i<list.size();i++){
Person p=list.get(i);
if(p.findPersonWhoseNameStartWith("A");
}
}
答案 0 :(得分:1)
你走在正确的轨道上。你是对的,你必须遍历列表。现在为每个条目输出它,如果它以'A'
开头。它非常简单,单一的if语句比你想象的更容易。
答案 1 :(得分:0)
// pass your personList and the prefix, return a list of person starting with the prefix you specified
private List<Person> findPersonWhoseNameStartWith(List<Person> personList, String prefix) {
// create a list to store your result
List<Person> matchedList = new ArrayList<Person>();
// TODO iterate personList
// add them to the matchedList if the prefix matches
return matchedList;
}
答案 2 :(得分:0)
public List<Person> findAPersonWhoStartsWith(List<Person> persons, String aLetter){
List<String> personsNames = new ArrayList<String>();
if(persons!=null && aLetter!=null && !aLetter.isEmpty()){
for(Person aPerson:persons){
if(aPerson.getName().startsWith(aLetter)){
personsNames.add(aPerson);
}
}
}
return personsNames;
}