Java掩码的几种使用例举
作者:Alan_阿兰 发布时间:2022-02-11 11:08:04
标签:java掩码,掩码处理
java掩码
private static String nameMask(String name) throws Exception {
if(name ==null)throw new Exception("请输入要掩码的字符串");
if(name.length()<=1) return name+"*";
return name.replaceAll("([\\u4e00-\\u9fa5]{1})(.*)", "$1"+createAsterisk(name.length()-1));
}
private static String createAsterisk(int len) {
StringBuffer sb = new StringBuffer();
for(int i=0;i<len;i++){
sb.append("*");
}
return sb.toString();
}
/**
* 对客户证件号码做掩码
*
* */
public static String maskCertId(String certId) throws Exception
{
if(certId==null||certId.length()==0) return "";
if(certId.length()==18)
{
String v = certId.substring(0,4);
String end = certId.substring(certId.length()-4);
return v+StringUtils.repeat("*",8)+end;
}
else
return "";
}
/**
* 对客户姓名做掩码
* @throws JBOException
* */
public static String maskUserName(String userName) throws Exception
{
if(userName==null||userName.length()==0) return "";
String v = userName.substring(0,1);
return StringUtils.rightPad(v, userName.length(),"*");//StringUtils.rightPad方法做一个字符串右补齐
}
/**
* 对字符串进行脱敏处理
* @param word 被脱敏的字符
* @param startLength 被保留的开始长度 0代表不保留
* @param endLength 被保留的结束长度 0代表不保留
* @param pad 填充字符
* */
public static String wordMask(String word,int startLength ,int endLength,String pad) {
if(word==null) return StringUtils.leftPad("", startLength+endLength,pad);
if(word.length()<=startLength+endLength) return StringUtils.leftPad("", startLength+endLength,pad);
String startStr = "";
String endStr = "";
int padLength = 0;
if(word.length()>startLength) startStr = StringUtils.substring(word, 0,startLength);
if(word.length()>startLength+endLength) endStr = StringUtils.substring(word, word.length()-endLength);
padLength = word.length()-startLength-endLength;
return startStr + StringUtils.repeat(pad, padLength)+endStr;
}
来源:https://blog.csdn.net/sixteen_cicle/article/details/73163815


猜你喜欢
- java 中模式匹配算法-KMP算法实例详解朴素模式匹配算法的最大问题就是太低效了。于是三位前辈发表了一种KMP算法,其中三个字母分别是这三
- 前言项目使用了SpringBoot构建项目。下面对动态调整日志的级别进行记录。从版本 1.5.1 之后就提供了基于 spring-boot-
- LockSupport 简介LockSupport 是 Java 并发编程中一个非常重要的组件,我们熟知的并发组件 Lock、线程池、Cou
- 延迟加载1 使用延迟加载意义在进行数据查询时,为了提高数据库查询性能,尽量使用单表查询,因为单表查询比多表关联查询速度要快。如果查询单表就可
- 一直使用的是FastJson,感觉还不错,很方便。看了一段别人的分析,觉得很有道理。为什么要使用Fastjson,其实原因不需要太多,喜欢就
- 本文主要介绍了java(包括springboot)读取resources下文件方式实现,分享给大家,具体如下:1、使用项目内路径读取,该路径
- 前言:自定义View可以分为两种方式:第一种通过继承ViewGroup,内部通过addView的方式将其他的View组合到一起。第二种则是通
- 1、什么是过滤器?在客户端到服务器的过程中,当发送请求时,如果有不符合的信息将会被filter进行拦截,如果符合则会进行放行,在服务器给客户
- 目录一、Shiro简介 核心角色核心理念二、整合SpringBoot2框架 1、核心依赖2、Shiro核心配置3、域对象
- tokentoken的意思是“令牌”,是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳
- 1. JWT的概念和特点JWT是一种轻量级、可扩展、可自包含的身份验证和授权机制。它是由三个部分组成:头部(Header)、载荷(Paylo
- 本文实例讲述了WPF弹出自定义窗口的方法。分享给大家供大家参考,具体如下:测试环境:[1]VS2010SP1[2]WPF(.NET Fram
- 本文实例讲述了Android编程实现加载等待ProgressDialog的方法。分享给大家供大家参考,具体如下:显示progressDial
- 我们都知道可以用爬虫来找寻一些想要的数据,除了可以使用python进行操作,我们最近学习的java同样也支持爬虫的运行,本篇小编就教大家用j
- Android 1.5之后将调节亮度的api隐藏了,不过android的源码中依然有方法可以实现,如下:IPowerManager powe
- 目录前言令牌中继令牌难道不能在Feign自动中继吗?实现令牌中继InheritableThreadLocal实现令牌中继总结前言在Sprin
- C#的FileInfo类提供了与File类相同的功能,不同的是FileInfo提供的都是成员方法,使用示例如下所示:1、读文件://创建只读
- 需要添加对 System.Management.dll 的引用 using System.Diagnostics; using System
- 前言在一般能搜到的所有实现圆角窗体的示例中,都是通过绘制圆角的路径,并创建对应的窗体Region区域实现。目前所知,重新创建Region的所
- java中Hashmap的get方法map中存储的是键值对,也就是说通过set方法进行参数和值的存储,之后通过get“键”的形式进行值的读取