보통사람

[7kyu] 문자 마스킹 처리 (Credit Card Mask) 본문

Codewars/Java

[7kyu] 문자 마스킹 처리 (Credit Card Mask)

pej4303 2019. 8. 3. 00:08
/**
 * <pre>
 * 문자 마스킹 처리 (Credit Card Mask)
 * 
 * 당신의 임무는 지난 4 개의 문자를 제외한 모든 문자를 '#'으로 바꾸는 maskify 함수를 작성하는 것입니다.
 * 
 * Your task is to write a function maskify, which changes all but the last four characters into '#'.
 * </pre>
 * 
 * @param 문자열
 * @return 마스킹된 문자열
 * @author pej
 * @date 2019. 03. 17.
 */
public static String maskify(String str) {
    
    StringBuilder builder = new StringBuilder(str);

    if (str.isEmpty() || str.length() <= 4) {
        return str;
    } else {
        for (int i = 0; i < str.length() - 4; i++) {
            builder.setCharAt(i, '#');
        }
        return builder.toString();
    }

    // 방법2) - Codewars
    // return str.replaceAll(".(?=.{4})", "#");
}

 

  • 방법2) - 다른 사람이 한 것

public static String maskify(String str) {
    return str.replaceAll(".(?=.{4})", "#");
}