PTA查询某人Java

本文介绍了如何使用Java编程实现人员信息查询。定义了一个Person类,包含name和age属性,以及相关的方法。在main方法中,根据用户输入创建Person数组,并查询特定人员是否存在,输出相应信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询某人

有一个人员数组,要在此数组中查询某个人是否存在,具体要求如下:
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");
	}
}

第一次写这样的文章,如有错误,请多指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值