java修改客户姓名_求能人解答使用JAVA的类和对象,循环输入客户姓名,然后修改客户姓名并显示,...

本文介绍了一种使用HashSet替代固定长度数组的方法,以实现更灵活的客户名单管理。通过示例代码展示了如何添加、显示及更新客户姓名。

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

展开全部

我觉得题主是事先定义了一个固定长度的数组,但是向数组里添62616964757a686964616fe58685e5aeb931333335343361加对象的数量却小于数组的长度,所以在按index进行比较时会出现NullPointerException。我建议题主改用一个HashSet,这样名单的长度就是灵活的了。另外showName方法我不知道题主为何不直接调用this.name而需要另提供一个参数name,因此我也稍作了改动。我修改的版本如下:import java.util.HashSet;

import java.util.Scanner;

public class CustomerBiz2 {

HashSet name = new HashSet(); // 输入客户姓名的数组长度

public HashSet addName() {

Scanner scan = new Scanner(System.in);

boolean condition; // 是否继续输入的布尔类型

int i = 0;

do {

System.out.print("请输入客户的姓名:");

this.name.add(scan.next());

System.out.print("继续输入吗?(y/n):");

String choose = scan.next(); // 输入是否继续

if ("y".equals(choose)) {

condition = true;

} else {

condition = false;

}

i++;

} while (condition);

return this.name;

}

// 显示输入的客户姓名

public void showName() {

System.out.println("\n\t\t客户姓名列表");

for (String names : this.name) {

System.out.print(names + "\t");

}

}

// 修改用户名

public void updateName() {

Scanner scan = new Scanner(System.in);

System.out.print("\n请输入要修改的客户姓名:");

String oldName = scan.next();

boolean found = false;

for (String names : this.name) {

if (names.equals(oldName)) {

System.out.print("\n请输入新的客户名:");

String newName = scan.next();

this.name.remove(oldName);

this.name.add(newName);

found = true;

System.out.println("\n\t\t找到结果并修改成功!");

break;

}

}

if (!found)

System.out.println("未找到结果,修改失败");

}

public static void main(String[] args) {

CustomerBiz2 test = new CustomerBiz2();

test.addName();

test.showName();

test.updateName();

test.showName();

}

}

运行main方法的例子:

修改成功:请输入客户的姓名:a

继续输入吗?(y/n):y

请输入客户的姓名:b

继续输入吗?(y/n):y

请输入客户的姓名:c

继续输入吗?(y/n):n

客户姓名列表

abc

请输入要修改的客户姓名:a

请输入新的客户名:asd

找到结果并修改成功!

客户姓名列表

bcasd

修改失败:请输入客户的姓名:a

继续输入吗?(y/n):y

请输入客户的姓名:b

继续输入吗?(y/n):y

请输入客户的姓名:c

继续输入吗?(y/n):n

客户姓名列表

abc

请输入要修改的客户姓名:d

未找到结果,修改失败

客户姓名列表

abc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值