StringBuilder builder = new StringBuilder();
for (char c : s.toCharArray()) {
//C를 n만큼 민 문자를 builder에 이어 붙이기
builder.append(push(c,n));
}
return builder.toString();
문자 c를 n만큼 민 새로운 문자를 계산하기 위해 메서드를 분리해줍시다.
private char push(char c, int n) {
//c를 n만큼 밀어 반환
}
private char push(char c, int n) {
if(!Character.isAlphabetic(c)) return c;
// c를 n만큼 밀어 반환
}
int offset = Character.isUpperCase(c) ? 'A' : 'a';
int position = c - offset;
position = (position + n) % ('Z' - 'A' + 1);
return (char) (offset + position);