/**
* @Description: 用来隐藏字符串
* @param code 原始字符串
* @param head 前面保留几位数
* @param tail 后面保留几位数
* @return: java.lang.String
*/
public String getEncryptCode(String code,int head,int tail){
// 中间要隐藏的位数
int body = code.length() - head - tail;
// 将字符串拆成三部分,并指定每部分长度的正则表达式
String regexVar = "(\\w{%d})(\\w{%d})(\\w{%d})";
String regex = String.format(regexVar, head, body, tail);
// 获取字符串中间要隐藏的部分,并替换成对应长度的*
String bodyPart = code.replaceAll(regex, "$2");
String bodyEncrypt = bodyPart.replaceAll("\\w", "*");
// 处理生成字符串replacement = "$1*****$3" 中间是对应长度的*号
String replacement = String.format("$1%s$3", bodyEncrypt);
return code.replaceAll(regex, replacement);
}
加密手机号中间几位:
public static String toBluredPhoneNumber(String phoneNumber) {
String bluredPhoneNumber = "";
int beginIndex = 3;
int blurStringLength = 4;
if(StringUtils.isBlank(phoneNumber)){
return bluredPhoneNumber;
}
char[] characters = phoneNumber.toCharArray();
for (int i = 0; i < characters.length; i++) {
char character = characters[i];
if (i >= beginIndex && i < beginIndex + blurStringLength) {
bluredPhoneNumber += "*";
} else {
bluredPhoneNumber += character;
}
}
return bluredPhoneNumber;
}