• 数据脱敏197


    脱敏

    public static final String DEFAULT_PAD_STR = "*"; //替换字符
    /**
    * 数据脱敏
    * 当字符创为空串或字符串长度小于等于 2 时,直接返回
    * 当【字符串总长度】减 {@code leftLen} 减 {@code rightLen} 小于等于 【字符串总长度】的三分之一时,则左右各展示【字符串总长度】的三分之一
    *
    * @param data 需要脱敏的数据
    * @param leftLen 左边展示几位
    * @param rightLen 右边展示几位
    * @param padStr 填充字符串,如果长度为 1, 则按位填充;否则否则直接填充,可用于颜文字填充场景
    * @return
    */
    public static String desensitization(String data, Integer leftLen, Integer rightLen, String padStr) {
    int length = StringUtils.length(data);
    if (StringUtils.isBlank(data) || length <= 2) {
    return data;
    }

    int oneThird = length / 3;

    // 设置默认值
    leftLen = Objects.isNull(leftLen) ? oneThird : leftLen;
    rightLen = Objects.isNull(rightLen) ? oneThird : rightLen;
    padStr = StringUtils.isBlank(padStr) ? DEFAULT_PAD_STR : padStr;

    if (length - leftLen - rightLen <= oneThird) {
    leftLen = oneThird;
    rightLen = oneThird;
    }


    String left = StringUtils.left(data, leftLen);
    String right = StringUtils.right(data, rightLen);
    if (StringUtils.length(padStr) == 1) {
    return StringUtils.rightPad(left, data.length() - rightLen, padStr).concat(right);
    }
    return left + padStr + right;
    }
  • 相关阅读:
    Summer Vacation(贪心,优先队列)
    方格探索(双端队列)
    Dream Team(最小费用流)
    Lucky Numbers(枚举,计数)
    Coins Respawn(负环,最短路)
    Preorder and Inorder(先序遍历+中序遍历求二叉树)
    Virus Tree 2(树形DP)
    Cards(并查集、环上DP)
    Max GCD(贪心、枚举)
    倒垃圾(思维题)
  • 原文地址:https://www.cnblogs.com/Ai-Hen-Jiao-zhi/p/13948396.html
Copyright © 2020-2023  润新知