目的地-Destination 前程似锦、未来可期、寻得良人、共赴白头,祝你也祝我。
博主 目的地-Destination
沪ICP备16003146号-2沪公网安备 31010702004922号萌ICP备20238488号博主 昨天 10:29 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 9 人
歌曲封面 未知作品

沪ICP备16003146号-2

沪公网安备 31010702004922号

萌ICP备20238488号

网站已运行 7 年 349 天 8 小时 0 分

Powered by Typecho & Sunny

9 online · 57 ms

Title

Java把身份证号中间打星号(身份证号码加*)

Chrison

·

烂笔头

·

Article
⚠️ 本文最后更新于2022年12月13日,已经过了686天没有更新,若内容或图片失效,请留言反馈
不只是身份证号中间加星号,手机号中间4位加星同样也可以。

运行结果

♾️ text 代码:
idMask("620101354985441562", 6, 4);
620101********1562

idMask("13000001234", 3, 4);
130****1234

完整Demo

♾️ text 代码:
public class IdMask {
  /**
   * 用户身份证号码的打码隐藏加星号加* 18位和非18位身份证处理均可成功处理 参数异常返回null
   *
   * @param idCardNum 身份证号码
   * @param front     需要显示前几位
   * @param end       需要显示末几位
   * @return 处理完成的身份证
   */
  public static String mask(String idCardNum, int front, int end) {
    // 身份证不能为空
    if (StringUtil.isEmpty(idCardNum)) {
      return null;
    }
    // 需要截取的长度不能大于身份证号长度
    if ((front + end) > idCardNum.length()) {
      return null;
    }
    // 需要截取的不能小于0

    if (front < 0 || end < 0) {
      return null;
    }
    // 计算*的数量
    int asteriskCount = idCardNum.length() - (front + end);
    StringBuffer asteriskStr = new StringBuffer();
    for (int i = 0; i < asteriskCount; i++) {
      asteriskStr.append("*");
    }
    String regex = "(\\w{" + String.valueOf(front) + "})(\\w+)(\\w{" + String.valueOf(end) + "})";
    return idCardNum.replaceAll(regex, "$1" + asteriskStr + "$3");
  }
}
现在已有 239 次阅读,0 条评论,0 人点赞
Comment:共0条
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主