java 姓名脱敏

2021-04-06

  /**
    * 姓名脱敏<br>
    *     规则:姓名为两个字的将姓氏以“*”展示<br>
    *         姓名为三个字或三个字以上的将中间的字以“*”展示,仅保留姓氏及最后一个字
    * @param name 姓名
    * @return 返回脱敏后的姓名
    */
    private String nameDesensitization(String name) {
        if (StringUtils.isBlank(name)) {
            return "";
        }
        // 姓名为两个字的
        if (name.length() == 2) {
            name = name.replaceFirst(name.substring(0,1), "*");
        }
        // 姓名为三个字的
        if (name.length() > 2) {
            // 姓氏
            String familyName = name.substring(0, 1);
            // 名字的最后一个字
            String givenName = name.substring(name.length() - 1, name.length());
            for (int i = name.length() - 2; i > 0; i --) {
                familyName += "*";
            }
            name = familyName + givenName;
        }
        return name;
    }

标题:java 姓名脱敏
作者:kiwi-Xu
地址:https://xuwj.net/articles/2021/04/06/1617697099266.html