复制代码代码如下:
clase pública César {
cadena final estática pública FUENTE = "abcdefghijklmnopqrstuvwxyz";
público estático final int LEN = FUENTE.longitud();
/**
* argumentos @param
*/
público estático vacío principal (String [] argumentos) {
Resultado de cadena = caesarEncryption("nuevayork");
System.out.println("resultado del cifrado:" + resultado);
System.out.println("resultado del descifrado:" + caesarDecryption(resultado));
}
//Cifrado
cadena estática pública caesarEncryption (cadena s) {
StringBuilder sb = nuevo StringBuilder();
si (s == nulo || s.length() < 1) {
System.out.println("no ingresaste nada.");
devolver nulo;
}
si (!isAlp(s)) {
System.out.println("ingrese ABC... sólo");
devolver nulo;
}
s = s.toLowerCase();
int len = s.longitud();
para (int j = 0; j < len; j++) {
char c = s.charAt(j);
int a = FUENTE.indexOf(c);
si (a == LEN -1) a = -1;
si (a == LEN -2) a = -2;
si (a == LEN - 3) a = -3;
sb.append(FUENTE.charAt(a + 3));
}
devolver sb.toString();
}
//Descifrado
cadena estática pública caesarDecryption (cadena s) {
StringBuilder sb = nuevo StringBuilder();
si (s == nulo || s.length() < 1) {
System.out.println("no ingresaste nada.");
devolver nulo;
}
si (!isAlp(s)) {
System.out.println("ingrese ABC... sólo");
devolver nulo;
}
s = s.toLowerCase();
para (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int a = FUENTE.indexOf(c);
si (a == 2) a = LEN + 2;
si (a == 1) a = LEN + 1;
si (a == 0) a = LEN;
sb.append(FUENTE.charAt(a - 3));
}
devolver sb.toString();
}
isAlp booleano estático público (String s) {
Cadena p = "^[A-Za-z]+$";
Patrón patrón = Pattern.compile(p);
Comparador de coincidencias = patrón.matcher(s);
si (matcher.find()) {
devolver verdadero;
}
devolver falso;
}
}