hanker

Java - 지역 번호, 핸드폰 번호 변환 (format) 본문

JAVA

Java - 지역 번호, 핸드폰 번호 변환 (format)

hanker 2025. 3. 11. 07:48
반응형

Java String to 전화번호 형식으로 포맷팅 방식

/**
 * 전화번호 포맷팅 클래스
 */
public class PhoneNumberFormatter {

    /**
     * 전화번호 문자열을 받아서 표준 포맷으로 변환합니다.
     * @param phoneNumber 원시 전화번호 문자열 (예: "01012345678", "(010)12345678")
     * @return 포맷팅된 전화번호 문자열 또는 포맷팅이 불가능한 경우 원본 문자열 반환
     */
    public static String formatPhoneNumber(String phoneNumber) {
        // 1. 전화번호에서 숫자만 추출합니다.
        String digits = phoneNumber.replaceAll("\\D", "");

        // 2. 추출한 숫자의 길이에 따라 조건 분기 처리
        if (digits.length() == 10) {
            // 10자리 전화번호의 경우
            // 예) 서울지역번호인 경우 "02-1234-5678"
            if (digits.startsWith("02")) {
                return digits.replaceFirst("(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3");
            } else {
                // 기타 지역의 경우 "031-123-4567" 형태 (지역번호 3자리, 나머지 3-4 자리)
                return digits.replaceFirst("(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3");
            }
        } else if (digits.length() == 11) {
            // 11자리 전화번호의 경우 "010-1234-5678"
            return digits.replaceFirst("(\\d{3})(\\d{4})(\\d{4})", "$1-$2-$3");
        }
        // 위 조건에 해당하지 않으면 원본 문자열 반환
        return phoneNumber;
    }

    // 메인 메서드를 통해 포맷팅 결과를 확인할 수 있습니다.
    public static void main(String[] args) {
        String[] testNumbers = {
            "01012345678", 
            "0212345678", 
            "0311234567", 
            "010-1234-5678", 
            "(010)12345678"
        };

        for (String number : testNumbers) {
            System.out.println("원본: " + number + " -> 포맷팅 결과: " + formatPhoneNumber(number));
        }
    }
}

실행 결과

 

끝.

반응형