Esse post não explica como a Cifra de César funciona. Se você não sabe, a Wikipédia tem um bom artigo a respeito.
O tipo char em Java é baseado em Unicode, que se inicia com todos os valores do padrão ASCII.

Não quero deslocar caracteres que não sejam letras. Ou seja, um sinal de pontuação continuará um sinal de pontuação e um número continuará um número. Além disso, não quero que uma letra seja deslocada para um caractere que não seja uma letra, Z deslocado 3 posições não deve virar ], deve “dar a volta” e virar C.
Portanto, os intervalos que nos interessam são 65-90 (letras maiúsculas) e 97-122 (letras minúsculas). Para garantir que uma letra “dê a volta” quando chegar no final do intervalo, usaremos aritmética modular.
Se as letras fossem enumeradas de 0 a 25, o cálculo seria
charEncriptado = (charOriginal + chave) mod 26
Se estivéssemos encriptando o caractere Z (25) com a chave 3, teríamos
charEncriptado = (25 + 3) mod 26
charEncriptado = 28 mod 26
charEncriptado = 2 = ‘C’
Mas como os intervalos começam em 65 (maiúsculas) ou 97 (minúsculas), precisamos adaptar ligeiramente
charMaiúsculoEncriptado = ((charOriginal – 65 + chave) mod 26) + 65
charMinúsculoEncriptado = ((charOriginal – 97 + chave) mod 26) + 97
Agora saindo da teoria e entrando no código em Java. Nosso método de encriptação receberá uma String (que chamaremos de textoOriginal) e uma chave, e retornará outra String (que chamaremos de textoCifrado). Para isso, percorrerá todos os caracteres da String textoOriginal, encriptando um por vez e acrescentando-o à String textoCifrado.
public static String encriptar(String textoOriginal, int chave) {
String textoCifrado = "";
for (int i = 0; i < textoOriginal.length(); i++) {
textoCifrado += encriptar(textoOriginal.charAt(i), chave);
}
return textoCifrado;
}
public static char encriptar(char charOriginal, int chave) {
char charCifrado;
if (charOriginal >= 97 && charOriginal <= 122) {
charCifrado = (char) ((charOriginal - 97 + chave) % 26 + 97);
}
else if (charOriginal >= 65 && charOriginal <= 90) {
charCifrado = (char) ((charOriginal - 65 + chave) % 26 + 65);
}
else {
charCifrado = charOriginal;
}
return charCifrado;
}