Hutool改变我们的coding方式(四)

Hutool改变我们的coding方式

  • 1、随机工具RandomUtil
  • 2、唯一ID工具IdUtil
  • 3、身份证工具IdcardUtil
  • 4、信息脱敏工具DesensitizedUtil

  • 测试代码地址:https://gitee.com/Augenstern-creator/kuang-study_-hutools
    在这里插入图片描述

1、随机工具RandomUtil

RandomUtil主要针对JDK中Random对象做封装,严格来说,Java产生的随机数都是伪随机数,因此Hutool封装后产生的随机结果也是伪随机结果。不过这种随机结果对于大多数情况已经够用。

  • RandomUtil.randomxxx() : 获得随机数xxx值

  • RandomUtil.randomInt() : 获得随机数Int值

  • RandomUtil.randomInt(int mixInclude,int maxExclude): 获得指定范围内的随机数 [min,max)

  • RandomUtil.randomString(int length) : 获得一个随机的字符串(只包含数字和字符)

    • length - 字符串的长度
  • RandomUtil.randomStringUpper(int length) : 获得一个随机的字符串(只包含数字和大写字符)

  • RandomUtil.randomNumbers(int length) : 获得一个只包含数字的字符串

/*** RandomUtil.randomxxx():获得随机数xxx值* RandomUtil.randomInt():获得随机数int值* RandomUtil.randomInt(int mixInclude,int maxExclude): 获得指定范围内的随机数 [min,max)*/
@Test
public void randomInt() {System.out.println(RandomUtil.randomInt(0,100));
}

2、唯一ID工具IdUtil

  • IdUtil.fastSimpleUUID() : 生成的UUID是带 - 的字符串
  • IdUtil.fastUUID(): 生成的UUID是不带 - 的字符串
/*** 获取UUID*/
@Test
public void uuidTest() {// f34229f2869742bd9e25ad54cc7e7972System.out.println(IdUtil.fastSimpleUUID());// 11b0cb15-cf03-4d29-bd6e-93766094784dSystem.out.println(IdUtil.fastUUID());
}

3、身份证工具IdcardUtil

  • IdcardUtil.isValidCard(String idCard) : 是否有效身份证号,忽略X的大小写 如果身份证号码中含有空格始终返回false
/*** IdcardUtil.isValidCard(String idCard): 是否有效身份证号,忽略X的大小写 如果身份证号码中含有空格始终返回false*/@Test
public void isValidTest() {String ID_18 = "321083197812162119";String ID_15 = "150102880730303";System.out.println(IdcardUtil.isValidCard(ID_18));System.out.println(IdcardUtil.isValidCard(ID_15));
}
  • IdUtil.getBirthByIdCard(String idCard) : 根据身份编号获取生日
  • IdUtil.getBirthDate(String idCard) : 从身份证号码中获取生日日期
/*** 获取生日*/
@Test
public void getTest() {String ID_18 = "321083197812162119";// 19781216System.out.println(IdcardUtil.getBirthByIdCard(ID_18));// 1978-12-16 00:00:00System.out.println(IdcardUtil.getBirthDate(ID_18));
}
  • IdUtil.getAgeByIdCard(String idcard) : 根据身份编号获取年龄,只支持15或18位身份证号码

/*** 获取年龄*/
@Test
public void getTest() {String ID_18 = "321083197812162119";// 45System.out.println(IdcardUtil.getAgeByIdCard(ID_18));
}
  • IdcardUtil.getYearByIdCard(String idcard) : 获取生日年
  • IdcardUtil.getMonthByIdCard(String idcard):获取生日月
  • IdcardUtil.getDayByIdCard(String idcard):获取生日天
/*** 获取生日年:IdcardUtil.getYearByIdCard(String idcard)* 获取生日月:IdcardUtil.getMonthByIdCard(String idcard)* 获取生日天:IdcardUtil.getDayByIdCard(String idcard)*/
@Test
public void getYearTest() {String ID_18 = "321083197812162119";// 1978System.out.println(IdcardUtil.getYearByIdCard(ID_18));// 12System.out.println(IdcardUtil.getMonthByIdCard(ID_18));// 16System.out.println(IdcardUtil.getDayByIdCard(ID_18));
}
  • IdcardUtil.getGenderByIdCard(String idcard) : 获取性别
  • IdcardUtil.getProvinceByIdCard(String idcard) : 获取省份
/*** 获取性别: IdcardUtil.getGenderByIdCard(String idcard) 返回性别(1 : 男 , 0 : 女)* 获取省份: IdcardUtil.getProvinceByIdCard(String idcard)*/
@Test
public void getGenderByIdCardTest() {String ID_18 = "321083197812162119";// 1System.out.println(IdcardUtil.getGenderByIdCard(ID_18));// 江苏System.out.println(IdcardUtil.getProvinceByIdCard(ID_18));
}

4、信息脱敏工具DesensitizedUtil

在数据处理或清洗中,可能涉及到很多隐私信息的脱敏工作,因此Hutool针对常用的信息封装了一些脱敏方法。

现阶段支持的脱敏数据类型包括:

  1. 用户id
  2. 中文姓名
  3. 身份证号
  4. 座机号
  5. 手机号
  6. 地址
  7. 电子邮件
  8. 密码
  9. 中国大陆车牌,包含普通车辆、新能源车辆
  10. 银行卡

整体来说,所谓脱敏就是隐藏掉信息中的一部分关键信息,用*代替,自定义隐藏可以使用StrUtil.hide方法完成。

  • DesensitizedUtil.address(String address,int sensitiveSize) : 脱敏地址
    • address - 家庭住址
    • sensitiveSize - 敏感信息长度
/***  DesensitizedUtil.address(String address,int sensitiveSize) : 脱敏地址 *  */
@Test
public void addressTest() {String address = "北京市海淀区中国人寿科技园";String address1 = DesensitizedUtil.address(address, 2);// 北京市海淀区中国人寿科**System.out.println(address1);
}
  • DesensitizedUtil.email(String email) : 脱敏电子邮箱, 邮箱前缀仅显示第一个字母,前缀其他隐藏,用星号代替,@及后面的地址显示,比如:d**@126.com
/*** DesensitizedUtil.email(String email):脱敏电子邮箱, 邮箱前缀仅显示第一个字母,前缀其他隐藏,用星号代替,@及后面的地址显示,比如:d**@126.com*/
@Test
public void emailTest() {String email = "2487422771@qq.com";// 2*********@qq.comSystem.out.println(DesensitizedUtil.email(email));
}
  • DesensitizedUtil.password(String password) : 脱敏密码,密码的全部字符都用*代替
/*** DesensitizedUtil.password(String password):脱敏密码,密码的全部字符都用*代替*/
@Test
public void passwordTest() {String password = "123456789";// *********System.out.println(DesensitizedUtil.password(password));
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/653974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技法和原理:如何找到你需要的菜单项?

你一定碰到过查找某个菜单项的场景,通常我们会使用类似于 GetMenuItemInfo 这样的菜单函数, 在这类函数中,有一个参数允许你指定要查找的菜单项目的信息:MF_BYPOSITION 或者 MF_BYCOMMAND。 至此,是不是很眼熟了。今天…

一定用得到的时频分析方法!广义S变换、小波变换、短时傅里叶变换(STFT)、Wigner-Ville 分布,直接运行!

适用平台:Matlab2020版本及以上 在实际应用中,时频分析通常与机器学习/深度学习技术结合,以提高故障识别的性能。时频分析可以捕捉信号在时间和频率上的瞬时变化,有助于检测到与故障相关的瞬时特征,如脉冲、振动或其它…

༺༽༾ཊ—Unity之-05-抽象工厂模式—ཏ༿༼༻

首先创建一个项目, 在这个初始界面我们需要做一些准备工作, 建基础通用文件夹, 创建一个Plane 重置后 缩放100倍 加一个颜色, 任务:使用 抽象工厂模式 创建 人物与宠物 模型, 首先资源商店下载 人物与宠物…

智能语音识别源码系统+语义理解+对话管理+语音合成 带完整的搭建教程

人工智能技术的不断发展,智能语音识别技术逐渐成为人们日常生活和工作中不可或缺的一部分。然而,目前市场上的智能语音识别产品大多存在一定的局限性,如识别率不高、功能单一等。为了解决这些问题,罗峰给大家分享一款基于智能语音…

Ps:段落面板

Ps菜单:窗口/段落 Window/Paragraph Ps菜单:文字/面板/段落面板 Type/Panels/Paragraph Panel 对于“点文本”,默认一行为一个段落。每按一次回车键,就多出一个段落。 对于“段落文本”,一段可能有多行,具体…

汽车网络安全管理体系框架与评价-汽车网络安全管理体系评价

当前 , 随若汽车联网产品渗透率、 智能传感设备搭载率的提升, 以及汽车与通信、互联网等行业的融合创新发展, 汽车行业面临愈发严峻的网络安全风险, 对消费者人身财产安全、 社会安全乃至国家安全产生威胁, 是产业发展…

多智能体强化学习--MAPPO(pytorch代码详解)

标题 代码详解Actor和Critic网络的设置 代码详解 代码链接(点击跳转) Actor和Critic网络的设置 基本设置:3个智能体、每个智能体观测空间18维。Actor网络:实例化一个actor对象,input-size是18Critic网络&#xff1…

产品解读 | 新一代湖仓集存储,多模型统一架构,高效挖掘数据价值

星环科技TDH一直致力于给用户带来高性能、高可靠的一站式大数据基础平台,满足对海量数据的存储和复杂业务的处理需求。 同时在易用性方面持续深耕,降低用户开发和运维成本,让数据处理平民化,助力用户以更便捷、高效的方式去挖掘数…

Python tkinter (9) ——Menu控件

本文主要是Python tkinter Menu菜单控件介绍及使用示例。 tkinter系列文章 python tkinter窗口简单实现 Python tkinter (1) —— Label标签 Python tkinter (2) —— Button标签 Python tkinter (3) —— Entry标签 Python tkinter (4) —— Text控件 Python tkinter (5…

计算机毕业设计 基于SpringBoot的校园闲置物品交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

多场景建模:腾讯3MN

3MN: Three Meta Networks for Multi-Scenario and Multi-Task Learning in Online Advertising Recommender Systems 背景 推荐领域的多场景多任务学习:维护单模型即可节省资源也可节省人力;各个场景的数据共享,理论上面学习是更加充分的 …

微信小程序Skyline在手机端不渲染的问题之一及其解决方式

问题:电脑端是skyline渲染,手机端是webview渲染?如何解? 开发者工具 当前渲染模式:Skyline 当进行预览时手机端却是: 请注意看轮播图的显示情况 请注意看轮播图的显示情况 请注意看轮播图的显示情况 从轮播图上来看,手机端是webview渲染…

“有国才有家”这个观点应该怎么理解?

​《有国才有家》这首歌由马仕健作词作曲,蒋国佳编曲,刘畅混音,马仕健演唱。 “家是最小国,国是千万家”。千百年来,“家国”这两个词一直紧紧联系在一起。“国家好,民族好,大家才会好”&#x…

【嵌入式学习】C++QT-Day3-C++基础

笔记 见我的博客:https://lingjun.life/wiki/EmbeddedNote/19Cpp 作业 设计一个Per类,类中包含私有成员:姓名、年龄、指针成员身高、体重,再设计一个Stu类,类中包含私有成员:成绩、Per类对象p1,设计这两个类的构造函…

Linux文件管理(下)

上上篇介绍了Linux文件管理的上部分内容,这次继续将 Linux文件管理的剩余部分说完。内容如下。 一、查看文件内容 1、cat 命令 1.1 输出文件内容 基本语法: cat 文件名称主要功能:正序输出文件的内容。 eg:输出 readme.txt文…

对Spring当中AOP的理解

AOP(面向切面编程)全称Aspect Oriented Programminge AOP就是把系统中重复的代码抽取出来,单独开发,在系统需要时,使用动态代理技术,在不修改源码的基础上,将单独开发的功能通知织入(应用)到系统中的过程,完…

慎投!这3本期刊诚信风险高,被警告和风险低的期刊选哪个?

近年来,学术界对学术诚信的关注越来越多,期刊的学术诚信风险也日益受到关注。科睿唯安在今年三月份剔除的35本SCI期刊中,绝大多数涉及学术诚信问题!据官方介绍,其已正式开发了一款AI工具,可以锁定存在学术诚…

【JavaScript 基础入门】01 编程语言和计算机基础

编程语言和计算机基础 目录 编程语言和计算机基础1 - 编程语言1.1 编程1.2 计算机语言1.3 编程语言1.4 翻译器1.5 编程语言和标记语言区别1.6 总结 2 - 计算机基础2.1 计算机组成2.2 数据存储2.3 数据存储单位2.4 程序运行 1 - 编程语言 1.1 编程 编程: 就是让计算…

微信小程序(二十二)获取全局实例

注释很详细,直接上代码 上一篇 新增内容: 1.全局实例的定义位置 2.全局实例中数据的修改方法 源码: app.js App({//数据可以包括在第二级globalData:{userInfo:null,token:1243,userInfo:null},//globalData并不是关键词,数据可以…

预制菜春节大洗牌,味知香、千味央厨谁是“硬菜”?

2024年春节预制菜销量走俏,预制菜依然是消费者“年夜饭”上的重头戏。各大生鲜平台、电商、商超、餐饮门店都纷纷开卖春节预制菜。 预制菜赛道两大“玩家”:“预制菜第一股”味知香(605089.SH)、“餐饮供应链第一股”千味央厨(001215.SZ)均在…