class Solution {
public String solution(String s, int n) {
StringBuilder sb = new StringBuilder();
for (int i=0; i<s.length(); i++){
char c = s.charAt(i);
if (65<=c && c<=90){
c = (char) (((c+n)-65)%26+65);
sb.append(c);
}
else if (97<=c && c<=122){
c = (char) (((c+n)-97)%26+97);
sb.append(c);
}
else sb.append(' ');
}
String answer = sb.toString();
return answer;
}
}
아스키코드를 사용해서 s의 한 char씩 n만큼 더해서 바뀐 char를 StringBuilder로 append()를 해 줬다. 근데 더했을 때 알파벳의 아스키코드 범위 (대문자: 65~90, 소문자: 97~122)를 벗어날 경우를 생각해서 알파벳 개수인 26으로 나눴을 때의 나머지를 활용해서 계산을 했다.
StringBuilder sb = new StringBuilder();
sb.append(c);
String answer = sb.toString();