查询某人
有一个人员数组,要在此数组中查询某个人是否存在,具体要求如下:
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.util.*;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
Person []a = new Person[n];
for(int i=0;i<n;i++) {
a[i]=new Person();
String p=sc.next();
int q=sc.nextInt();
a[i].setName(p);
a[i].setAge(q);
a[i].toString();
System.out.println(a[i]);
}
String b=sc.next();
for(int i=0;i<n;i++) {
if(b.equals(a[i].getName()))
{
System.out.println("查询结果:\n" + a[i]);
return ;
}
}
System.out.println("not found");
}
}
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() {
this.name="none";
this.age=1;
}
public void person(String name,int age) {
this.name=name;
this.age=age;
}
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
这里的查询只是最简单的一种,还可以使用“索引”的方法只需将参考代码中的查询部分替换一下即可。
需要替换的部分:
String b=sc.next();
for(int i=0;i<n;i++) {
if(b.equals(a[i].getName()))
{
System.out.println("查询结果:\n" + a[i]);
return ;
}
}
System.out.println("not found");
}
替换为:
boolean zhaodao = false;
int index=-1;
String b=sc.next();
for(inti=0;i<n;i++){
if(b.equals(a[i].getName())){
index=i;
zhaodao = true;
break;
}
if(zhaodao){
System.out.println("查询结果:\n"+a[index]);
}
else{
System.out.println("not found");
}
}
第一次写这样的文章,如有错误,请多指正。