개인정보 (이름) 마스킹 로직

페이지 정보

  • 조회 25
  • 작성일 2026.02.25 15:19

public static String maskName(String name) {
 
    if (name == null || name.isEmpty()) {
        return name;
    }
 
    int length = name.codePointCount(0, name.length());
 
    // 한 글자
    if (length == 1) {
        return name;
    }
 
    // 두 글자
    if (length == 2) {
        int firstEnd = name.offsetByCodePoints(0, 1);
        return name.substring(0, firstEnd) + "*";
    }
 
    // 세 글자 이상
    int firstEnd = name.offsetByCodePoints(0, 1);
    int lastStart = name.offsetByCodePoints(0, length - 1);
 
    StringBuilder sb = new StringBuilder(name.length());
    sb.append(name, 0, firstEnd);
 
    for (int i = 1; i < length - 1; i++) {
        sb.append('*');
    }
 
    sb.append(name, lastStart, name.length());
 
    return sb.toString();
}

[이 게시물은 이재민님에 의해 2026-03-04 13:54:19 개발에서 이동 됨]

댓글목록

등록된 댓글이 없습니다.