Hola, la cosas es hacer un programa con String en el que introduzcas una frase y encriptarla con el cifrado de cesar introduciendo por teclado tambien el desplazamiento.
luego hay que hacerlo a la inversa y la frase encriptada devolver la original. Me funciona todo bien pero cuando escribo una frase con espacios lo encripta bien pero la desencriptacion me da un error.
import java.util.Scanner;
public class Bloque_46 {
public static void main(String[] args) {
Scanner S = new Scanner(System.in);
String f1, f2, f3;
int desplazamiento;
f2 = "";
f3 = "";
String min = "abcdefghijklmnopqrstuvwxyz ";
String may = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
System.out.print("introduce una frase: ");
f1 = S.nextLine();
System.out.print("Introduce la clave de desplazamiento:");
desplazamiento = S.nextInt();
for(int i = 0 ; i < f1.length(); i++){
for(int j = 0; j < min.length();j++){
if (f1.charAt(i) == min.charAt(j)){
if(j+ desplazamiento >= min.length()){
f2+= min.charAt((j + desplazamiento)% min.length());
}
else{
f2 += min.charAt(j+desplazamiento);
}
}
else if(f1.charAt(i) == may.charAt(j)){
if(j+ desplazamiento >= may.length()){
f2+= may.charAt((j + desplazamiento)% may.length());
}
else{
f2 += may.charAt(j+desplazamiento);
}
}
}
}
System.out.println(f1);
System.out.println(f2);
for(int i = 0; i < f2.length() ; i++){
for(int j = 0; j < min.length(); j++){
if(f2.charAt(i) == min.charAt(j)){
if(j- desplazamiento <= min.length() ){
f3+= min.charAt((j - desplazamiento)% min.length());
}else{
f3+= min.charAt(j-desplazamiento);
}
}
else if(f2.charAt(i) == may.charAt(j)){
if(j- desplazamiento <= may.length() ){
f3+= may.charAt((j - desplazamiento)% may.length());
}else{
f3+= may.charAt(j-desplazamiento);
}
}
}
}
System.out.println(f3);
}
}