2019-06-01 15:36:27 +00:00
|
|
|
import static utils.Utils.*;
|
|
|
|
|
|
|
|
public class CesarChiffre {
|
|
|
|
|
|
|
|
public static final void main(String[] args) {
|
|
|
|
afficher("Chiffre de César - chiffrement");
|
|
|
|
testCesar(CesarChiffre::cesar, true);
|
|
|
|
}
|
|
|
|
|
2019-06-01 16:23:06 +00:00
|
|
|
public static char[] cesar(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[(position(c)+cle) % ALPHABET.length];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return out;
|
2019-06-01 15:36:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|