有一个人员数组,要在此数组中查询某个人是否存在,具体要求如下:
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
输入格式:
请在这里写输入格式。例如:输入在一行中给出2个绝对值不超过1000的整数A和B。
输出格式:
请在这里描述输出格式。例如:对每一组输入,在一行中输出A+B的值。
输入样例:
在这里给出一组输入。例如:
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]
代码如下:
import java.io.OutputStream;
import java.util.Scanner;
class Person{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person() {
name="none";
age=1;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Person []arr= new Person[n];
for(int i=0;i<n;i++){
String name =sc.next();
int age = sc.nextInt();
arr[i] = new Person(name,age);
}
for(int i=0;i<n;i++){
System.out.println(arr[i].toString());
}
String name = sc.next();
int index=0;
boolean f =true;
for(int i=0;i<arr.length;i++){
if(name.equals(arr[i].getName())){
index = i;
f=true;
}else{
f=false;
}
}
if(f==true){
System.out.printf("查询结果:");
System.out.printf("\n");
System.out.print(arr[index].toString());
}else if(f==false){
System.out.println("not found");
}
}
}