package org.jeecg.modules.system.app.utils;

import java.util.Objects;

public class StringMasker {
    private static final char MASK_CHAR = '*';

    /**
     * 掩码处理字符串（保留首字符，其余替换为*）
     * @param input 原始字符串
     * @return 掩码后的字符串（null返回null，空字符串返回空串）
     */
    public static String mask(String input) {
        // 防御性空值处理
        if (Objects.isNull(input) || input.isEmpty()) {
            return input;
        }

        // 单字符快速返回
        if (input.length() == 1) {
            return input;
        }

        // 确定处理长度（最多处理前5个字符）
        int processLength = Math.min(input.length(), 5);
        char[] chars = new char[processLength];
        // 设置第一个字符
        chars[0] = input.charAt(0);
        // 掩码后续字符（最多到第5个）
        for (int i = 1; i < processLength; i++) {
            chars[i] = MASK_CHAR;
        }
        return new String(chars);
    }
}
