Preparare un programma capace di criptare un testo inserito da tastiera secondo il seguente algoritmo: ogni lettera del testo deve essere sostituita dalla lettera che si trova nella stessa posizione nell’alfabeto rovesciato.
Gli spazi bianchi e gli altri caratteri non alfabetici eventualmente contenuti nel testo da cifrare devono rimanere invariati. Le lettere maiuscole devono rimanere tali dopo la sostituzione, e così pure le lettere minuscole.

Esempio: la parola CASA sarebbe criptata come XZHZ, la parola casa sarebbe criptata come xzhz, la parola Casa sarebbe criptata come Xzhz.
// Criptografia

import javax.swing.*;

public class Cripto {

public static void main ( String args [] )
{
String alfa[] = { "a","b","c","d","e","f","g","h","i","j","l",
"m","n","o","p","q","r","s","t","u","x","y","z " };

String input , // Stringa di input
output = " "; // Stringa di output

input =
JOptionPane.showInputDialog(" Inserisci la frase da criptare ");

/* Leggo il i caratteri uno x uno li confronto
maiuscili o minuscoli */

for ( int i = 0; i <= input.length() ; i++ ){ // inizio for
for ( int j = 0; j <= 27 ; j++ )// ciclo per controllare i carattri

if (input.charAt(i).equalsIgnoreCase(alfa[j]) &&
input.charAt(i).equals(alfa[j])) // controllo

// stampa la parola criptata
for ( int x = 27 ; x >= 27 - j; x-- ){
output += alfa[x];
}
else
// stampa se la lettera e maiscola
for ( int y = 27 ; y >= 27 - j; y-- )
output += alfa[y].toUpperCase();

} // fine for

JOptionPane.showMessageDialog(null,output,"La frase criptata e': ",
JOptionPane.INFORMATION_MESSAGE );

System.exit(0);

} // fine main
} // fine classe

Apparte gli altri errori che ci possono essere il problema è nell'if, il compilatore mi dicebject type required, but char found
perchè?