package com.crm.rely.backend.util;

import com.google.common.base.Strings;

public class RexUtil {
    public static String getMaxkstr(String str, int start, int end, String mask) {
        //将字符串str字符串转换为StringBuilder类型
        StringBuilder s = new StringBuilder(str);
        //循环遍历s ，i=start，i<end 为设置的int类型长度
        for (int i = start; i < end; i++) {
            //将设置的s进行字符替换replace(开始位置，结束位置，替换的字符);  结束位置为设置的长度-1，例如设置结束位置为10，实则到9.
            s.replace(i, i + 1, mask);
        }
        //s变成字符串进行返回
        return s.toString();
    }


    public static String rexName(String name) {
        return rexName(name, null);
    }

    public static String rexName(String name, String mask) {
        if (Strings.isNullOrEmpty(name)) {
            return null;
        }
        if (Strings.isNullOrEmpty(mask)) {
            mask = "*";
        }
        int length = name.length();
        return getMaxkstr(name, 1, length, mask);

    }

    public static String rexPhone(String phone) {
        return rexPhone(phone, null);
    }

    public static String rexPhone(String phone, String mask) {
        if (Strings.isNullOrEmpty(phone)) {
            return null;
        }
        if (Strings.isNullOrEmpty(mask)) {
            mask = "*";
        }
        int length = phone.length();
        if (length > 3) {
            if (length < 7) {
                return getMaxkstr(phone, 3, length, mask);
            } else {
                return getMaxkstr(phone, 3, 7, mask);
            }
        }
        return phone;
    }

    public static String rexEmail(String email) {
        return rexEmail(email, null);
    }

    public static String rexEmail(String email, String mask) {
        if (Strings.isNullOrEmpty(email)) {
            return null;
        }
        if (Strings.isNullOrEmpty(mask)) {
            mask = "*";
        }
        return getMaxkstr(email, 2, email.indexOf("@"), mask);
    }

    public static void main(String[] args) {
        System.out.println(rexPhone("15756+798"));
        System.out.println(rexEmail("122@qq.com"));
        System.out.println(rexPhone("66521347"));
    }
}
