Closed leechGamer closed 2 years ago
p74. 약 17번째 줄
- 포맷을 명시하기로 했으면, 명시한 포맷에 맞는 문자열과 객체를 상호전환 할 수 있는 정적 팩터리나 생성자를 제공해주면 좋다.
책에 나오는 PhoneNumber 클래스에 위 내용을 적용한 예시가 궁금합니다.
@Builder
public class PhoneNumber{
private final int areaCode, prefix, lineNum;
private static final Pattern pattern = Pattern.compile("\\d{3}-\\d{4}-\\d{4}$");
// PhoneNumber -> String
@Override
public String toString() {
return String.format("%03d-%04d-%04d", areaCode, prefix, lineNum);
}
// String -> PhoneNumber
public static PhoneNumber parse(String phoneNumber) throws Exception {
if(!pattern.matcher(phoneNumber).find()) {
throw new Exception(phoneNumber + " are not matched");
}
String[] numbers = phoneNumber.split("-");
return PhoneNumber.builder()
.areaCode(Integer.parseInt(numbers[0]))
.prefix(Integer.parseInt(numbers[1]))
.lineNum(Integer.parseInt(numbers[2]))
.build();
}
}
p74. 약 17번째 줄
책에 나오는 PhoneNumber 클래스에 위 내용을 적용한 예시가 궁금합니다.