7-13 查询某人 (10 分)
有一个人员数组,要在此数组中查询某个人是否存在,具体要求如下:
1.定义Person类:
a :属性 name和age
b: 两个属性的getters 和setters
c: 带参数构造方法,为name和age给值 以及无参构造方法,给name赋值为none,age赋值为1
d :ToString方法 public String toString() { return “Person [name=” + name + “, age=” + age + “]”; }
2.在main方法中,创建Person数组,数组长度通过键盘输入,数组每一个对象的name和age通过键盘给出,创建数组后,首先显示所有人员的信息,然后输入一个姓名,查询数组中有这个人么?如果有,输出这个人的信息,否则输出not
found
输入样例:
在这里给出一组输入。例如:
3
tian 3
jerry 23
sun 22
su
3
may 51
sunny 23
lily 32
lily
输出样例:
在这里给出相应的输出。例如:
Person [name=tian, age=3]
Person [name=jerry, age=23]
Person [name=sun, age=22]
not found
Person [name=may, age=51]
Person [name=sunny, age=23]
Person [name=lily, age=32]
查询结果:
Person [name=lily, age=32]
题解:
package jyc.test;
import java.util.Date;
import java.util.Scanner;
public class Main {
public static void main(String [] args){
Scanner input =new Scanner(System.in);
int n=input.nextInt();
Person [] obj=new Person[n];//创建对象数组,但未实例化每个对象
int i=0;
while(i<n){
obj[i]=new Person();//必须滴创建每个对象的实例
obj[i].name=input.next();
obj[i].age=input.nextInt();
i++;
}
int j=0;
String s=input.next();
while(j<i)
System.out.println(obj[j++].toString());
j=0;
int fg=0;
while(j<i){
if(s.equals(obj[j].name)){
fg=1;
System.out.println("查询结果:\n"+obj[j].toString());
break;
}
j++;
}
if(fg==0)
System.out.println("not found");
}
}
class Person{
String name="none";
int age=1;
void setName(String x){
this.name=x;
}
String getName(){
return this.name;
}
void setAge(int x){
this.age=x;
}
int getAge(){
return this.age;
}
public Person(){}
public Person(String name0,int age0){
this.age=age0;
this.name=name0;
}
public String toString()
{
return "Person [name=" + name + ", age=" + age + "]";
}
}
注:本文原创,转载请注明出处