public static void replaceSensitive(){// 卡号显示前6位和后4位,中间打*点, 卡号:16,19,19位都有可能String accountNumber = "6543211234567890";int encLength = accountNumber.length() - 10;String regex = "(\\d{6})\\d{" + encLength+ "}(\\w{4})";// $1表示匹配第一个{}的内容System.out.println("accountNumber:"+accountNumber.replaceAll(regex,"$1*********$2"));String userName = getUserName("杨柳依依");// 姓名 显示最后一个汉字,其他打*System.out.println("userName:"+userName);String mobile = "15529636659";// 手机号11位 中间四位展示 ****System.out.println("mobile:"+mobile.replaceAll("(\\d{3})\\d{4}(\\w{4})","$1****$2"));// 身份证号18位 只展示后四位String idCard = "612423199712116552";System.out.println("idCard:"+idCard.replaceAll("\\d{14}(\\w{4})","**************$1"));}private static String getUserName(String userName){StringBuilder sb = new StringBuilder("");for (int i = 0; i < userName.length() - 1; i++){sb.append("*");}sb.append(userName.substring(userName.length() - 1));return sb.toString();}