匹配用户名称--通过string名字的模糊匹配数据库中的用户id操作。

该代码段展示了如何在Java中通过用户输入的模糊名称来匹配数据库中的用户ID。首先,通过调用远程接口获取所有用户,然后遍历用户列表,使用contains方法进行模糊匹配,将匹配到的用户ID收集到一个新的列表中。

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

需求:通常数据库存的是用户id,但是用户输入的模糊的名称string类型,要是想匹配用户的话

操作:先获取系统所有的用户list,然后再遍历list,通过contain匹配用户名称,收集符合的用户id,就可以得到一个list<Integer> 的用户id集合。

本系统用户集合是map,key是用户id,value是用户实体类

先获取用户map

 /**
     * 调用远程接口获取用户集合
     * @param
     * @return
     */
    public Map<String, SysUser> userList() {
        R<Map<String, SysUser>> userAll = remoteUserService.getUserAll();
        if (userAll.getCode() != HttpStatus.SUCCESS) {
            throw new CheckedException("获取目录树失败,msg:" + userAll.getMsg());
        }
        return userAll.getData();
    }

再收集value集合后,去遍历value对象类,收集id集合

 /**
     * 通过用户名模糊匹配用户idList
     */
    public List<Integer> pattern(String peopleName){
        //调远程接口获取用户list;
        Map<String, SysUser> sysUserMap = userList();
        List<SysUser> sysUserList = new ArrayList<>();
        //收集用户值list
        Collection<SysUser> values = sysUserMap.values();
        Iterator<SysUser> it2 = values.iterator();
        while(it2.hasNext()) {
            sysUserList.add(it2.next());
        }
        List<Integer> list = patternUser(sysUserList, peopleName);
        return list;
    }

    //模糊匹配用户id
    private List<Integer> patternUser(List<SysUser> sysUserList,String peopleName){
        List<Integer> userId = new ArrayList<>();
        for (SysUser sysUser : sysUserList){
            String nickName = sysUser.getNickName();
            if (nickName.contains(peopleName)){
                userId.add(Math.toIntExact(sysUser.getUserId()));
            }
        }
        return userId;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值