더북(TheBook)

문자 cn만큼 민 새로운 문자를 계산하기 위해 메서드를 분리해줍시다. 다음과 같이 입력 문자를 n만큼 민 문자를 반환하는 push() 메서드를 선언합니다.

private char push(char c, int n) {
    // c를 n만큼 밀어 반환
}

 

1-A. 알파벳이 아닌 경우 문자를 그대로 이어 붙이기

알파벳이 아닌 문자는 시저 암호에 영향을 받지 않기 때문에 Character 클래스의 isAlphabetic() 메서드를 사용하여 알파벳이 아닌 문자는 그대로 반환될 수 있게 합니다.

private char push(char c, int n) {
    if (!Character.isAlphabetic(c)) return c;
 
    // c를 n만큼 밀어 반환
}

잠깐만요

아스키 코드를 이용해서 알파벳인지 여부를 검사할 수도 있습니다. 알파벳은 ‘a’~‘z’가 연속되고, ‘A’~‘Z’가 연속되므로 다음과 같이 작성해도 됩니다.

if (!(c >= 'A' && c <='Z') && !(c >= 'a' && c <='z')) return c;

이 조건은 ‘c가 대문자가 아니고, 소문자도 아닐 때’를 검사하는 조건으로 이 조건이 true가 되면 c는 알파벳이 아닙니다.

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.