문자 c를 n만큼 민 새로운 문자를 계산하기 위해 메서드를 분리해줍시다. 다음과 같이 입력 문자를 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는 알파벳이 아닙니다.