java类与对象 演练 查找并修改姓名
视频
https://www.ixigua.com/i6870489659168784903/
思路
先定义一个类
类中有一个名字数组
提前给这个数组一些默认值,用于直接搜索和替换,简化流程
类的定义
public class CustomerBiz {
// 姓名数组
// String[] nameArray = new String[29];
String[] nameArray = {"黄忠", "关羽", "张飞", "赵云", "马超"};
/**
* 查找出替换
*/
public void replace() {
}
查找与替换的思路
方法的功能
查找,如果查到了就进行替换
如果查不到,就不能替换
方法的参数
查什么?
替换为什么?
方法要运行需要这两个参数
用户尽管提供
方法的逻辑
得到查询词
拿着这个词在数组中一个一个的比对,看能否找到
如果找到了,获取数据中这个一样的词,的下标
然后可以根据下标,给数组[下标] 重新赋值
查到了就替换
查汪到就不替换
对于目标下标的操作
如果找到了,得到一个下标
如果找不到,让这个下标值为-1
我们只需要判定下标是否为-1
即可断定要查的词是否成功找到
实现了查找功能后
删掉多出的代码
测试一下查找
只要搜的词不在数组中
res_idx就是负值
因此
我们可以考虑
如果
res_idx值为正值
那么就表示查到了
那么就可以替换了
否则
就表示没查到
就无法实现替换
小结查找与替换
- 拿着搜索的词,在数组中一个一个的比对
- 如果比对到了有相同的值,就获取下标
- 有了下标就可以给数组赋值
代码
类的代码
public class CustomerBiz {
// 姓名数组
// String[] nameArray = new String[29];
String[] nameArray = {"黄忠", "关羽", "张飞", "赵云", "马超"};
/**
* 查找出替换
* 参数一:查询关键词。
* 参数二:替换为什么。
*/
public void replace(String oldName, String newName) {
// 初始下标
int res_idx = -1;
// 遍历查找
for (int i = 0; i < nameArray.length; i++) {
// 拿着oldName的词和下标对应的值比对
if (oldName == nameArray[i]) {
res_idx = i;
// 找到了就可以不用继续往后找了,可节约性能,避免不必要的多余的遍历查找工作
break;
}
}
System.out.println("最终获取目标下标:" + res_idx);
// 查到替换,查不到什么也不做
if (res_idx >= 0) {
nameArray[res_idx] = newName;
} else {
System.out.println("你要查的内容不存在,无法替换");
}
}
/**
* 显示所有姓名
*/
public void showNames() {
System.out.println("开始打印数组名单了。。。。。。。");
System.out.println("***********************");
System.out.println("\t\t客户姓名列表:");
System.out.println("***********************");
for (int i = 0; i < nameArray.length; i++) {
// 如果值为null,那就不输出
if (nameArray[i] == null) {
continue;
}
System.out.print(nameArray[i]);
System.out.print("\t");
}
}
/**
* 添加姓名
*/
public void addName(String name) {
System.out.println("收到传来的参数:" + name);
// 遍历数组的下标,找到值为null的位置,把name值塞进去,然后就停止找别的位置
for (int i = 0; i < nameArray.length; i++) {
if (nameArray[i] == null) {
nameArray[i] = name;
break;
}
}
System.out.println("名字记录成功");
}
}
测试文件代码
public class Test {
public static void main(String[] args) {
// 实例化管理员类
Manager host = new Manager();
// 实例化Game类
Game g = new Game();
g.showLoginMenu();
}
}