求能人解答使用JAVA的类和对象,循环输入客户姓名,然后修改客户姓名并显示,
答案:1 悬赏:70
解决时间 2021-03-06 09:34
- 提问者网友:别再叽里呱啦
- 2021-03-05 13:28
求能人解答使用JAVA的类和对象,循环输入客户姓名,然后修改客户姓名并显示,
最佳答案
- 二级知识专家网友:几近狂妄
- 2021-03-05 14:00
我觉得题主是事先定义了一个固定长度的数组,但是向数组里添加对象的数量却小于数组的长度,所以在按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("
客户姓名列表");
for (String names : this.name) {
System.out.print(names + " ");
}
}
// 修改用户名
public void updateName() {
Scanner scan = new Scanner(System.in);
System.out.print("
请输入要修改的客户姓名:");
String oldName = scan.next();
boolean found = false;
for (String names : this.name) {
if (names.equals(oldName)) {
System.out.print("
请输入新的客户名:");
String newName = scan.next();
this.name.remove(oldName);
this.name.add(newName);
found = true;
System.out.println("
找到结果并修改成功!");
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
import java.util.HashSet;
import java.util.Scanner;
public class CustomerBiz2 {
HashSet
public HashSet
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("
客户姓名列表");
for (String names : this.name) {
System.out.print(names + " ");
}
}
// 修改用户名
public void updateName() {
Scanner scan = new Scanner(System.in);
System.out.print("
请输入要修改的客户姓名:");
String oldName = scan.next();
boolean found = false;
for (String names : this.name) {
if (names.equals(oldName)) {
System.out.print("
请输入新的客户名:");
String newName = scan.next();
this.name.remove(oldName);
this.name.add(newName);
found = true;
System.out.println("
找到结果并修改成功!");
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
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯