2019-06-01 15:36:27 +00:00
|
|
|
import static utils.Utils.*;
|
|
|
|
|
|
|
|
public class CesarDechiffre {
|
|
|
|
|
|
|
|
public static final void main(String[] args) {
|
|
|
|
afficher("Chiffre de César - déchiffrement");
|
2019-06-01 16:23:06 +00:00
|
|
|
testCesar(CesarDechiffre::deCesar, false);
|
2019-06-01 15:36:27 +00:00
|
|
|
}
|
|
|
|
|
2019-06-01 16:23:06 +00:00
|
|
|
public static char[] deCesar(char[] in, int cle) {
|
2019-06-01 15:36:27 +00:00
|
|
|
// Pour le caractère espace, pas de transformation
|
2019-06-01 16:23:06 +00:00
|
|
|
// ALPHABET est un tableau des caractères de l'alphabet dans l'ordre
|
|
|
|
// int position(char c): retourne la position de la lettre dans l'alphabet
|
|
|
|
// (à partir de 0)
|
2019-06-01 15:36:27 +00:00
|
|
|
|
2019-06-01 16:23:06 +00:00
|
|
|
char[] out = new char[in.length];
|
|
|
|
for (int i = 0; i<in.length; i++) {
|
|
|
|
char c = in[i];
|
|
|
|
if (c == ' ') {
|
|
|
|
out[i] = c;
|
|
|
|
} else {
|
|
|
|
out[i] = ALPHABET[(ALPHABET.length+position(c)-cle) % ALPHABET.length];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return out;
|
2019-06-01 15:36:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|