复制代码代码如下:
kelas publik Caesar {
SUMBER String akhir statis publik = "abcdefghijklmnopqrstuvwxyz";
int akhir statis publik LEN = SOURCE.length();
/**
* @param argumen
*/
public static void main(String[] args) {
Hasil string = caesarEncryption("newyork");
System.out.println("hasil enkripsi:" + hasil);
System.out.println("hasil dekripsi:" + caesarDecryption(hasil));
}
//Enkripsi
String statis publik caesarEncryption(String s) {
StringBuilder sb = StringBuilder baru();
if (s == null || s.panjang() < 1) {
System.out.println("Anda tidak memasukkan apa pun.");
kembalikan nol;
}
jika (!isAlp(s)) {
System.out.println("masukan ABC... saja");
kembalikan nol;
}
s = s.toLowerCase();
int len = s.panjang();
untuk (int j = 0; j < len; j++) {
char c = s.charAt(j);
int a = SUMBER.indexOf(c);
jika (a == LEN -1) a = -1;
jika (a == LEN -2) a = -2;
jika (a == LEN - 3) a = -3;
sb.append(SOURCE.charAt(a + 3));
}
kembali sb.toString();
}
//Dekripsi
string statis publik caesarDekripsi(String s) {
StringBuilder sb = StringBuilder baru();
if (s == null || s.panjang() < 1) {
System.out.println("Anda tidak memasukkan apa pun.");
kembalikan nol;
}
jika (!isAlp(s)) {
System.out.println("masukan ABC... saja");
kembalikan nol;
}
s = s.toLowerCase();
untuk (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int a = SUMBER.indexOf(c);
jika (a == 2) a = LEN + 2;
jika (a == 1) a = LEN + 1;
jika (a == 0) a = LEN;
sb.append(SOURCE.charAt(a - 3));
}
kembali sb.toString();
}
boolean statis publik isAlp(String s) {
String p = "^[A-Za-z]+$";
Pola pola = Pattern.compile(p);
Pencocokan pencocokan = pattern.matcher(s);
if (pencocokan.temukan()) {
kembali benar;
}
kembali salah;
}
}