java类与对象 演练 查找并修改姓名

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();

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲸鱼编程pyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值