public class CaesarCipher {
public String solution(String s, int n) {
char[] arr = s.toCharArray();
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < n; j++) {
if (arr[i] == ' ') {
arr[i] = ' ';
} else if (arr[i] == 'z') {
arr[i] = 'a';
} else if (arr[i] == 'Z') {
arr[i] = 'A';
} else {
arr[i]++;
}
}
}
return String.valueOf(arr);
}
public String solution1(String s, int n) {
char[] arr = s.toCharArray();
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 'a' && arr[i] <= 'z') {
arr[i] = (char) (arr[i] + n);
if (arr[i] > 'z') {
arr[i] = (char) ('a' + arr[i] - 'z' - 1);
}
} else if (arr[i] >= 'A' && arr[i] <= 'Z') {
arr[i] = (char) (arr[i] + n);
if (arr[i] > 'Z') {
arr[i] = (char) ('A' + arr[i] - 'Z' - 1);
}
} else {
arr[i] = ' ';
}
}
return String.valueOf(arr);
}
public static void main(String[] args) {
CaesarCipher s = new CaesarCipher();
System.out.println(s.solution1("AB", 1));
System.out.println(s.solution1("z", 1));
System.out.println(s.solution1("a B z", 4));
}
}