通常有些情况用户的手机号、身份证号等隐私信息不方便展示,需要进行脱敏保密处理,实现方法方法很简单,以手机号为例操作如下
代码:
public static void main(String[] args) {
String mobile = "18466602282";
String s1 = mobile.replaceAll("(\\d{3})\\d*(\\d{1})", "$1****$2");
String s2 = mobile.replaceAll("(\\d{3})\\d*(\\d{2})", "$1****$2");
String s3 = mobile.replaceAll("(\\d{3})\\d*(\\d{3})", "$1****$2");
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
}
输出:
184****2
184****82
184****282
正则解读:
1、(\\d{3})\\d*(\\d{1})
(\\d{3}) : 代表前三位字符
\\d* : 代表去除头部和尾部之后的中间字符
(\\d{1}) : 代表后一位字符
2、$1****$2 : $1和$2中间有几个* 就代表中间的字符用几个*代替