复制代码代码如下:
общественный класс Цезарь {
public static Final String SOURCE = "abcdefghijklmnopqrstuvwxyz";
public static Final int LEN = SOURCE.length();
/**
* @param аргументы
*/
public static void main(String[] args) {
Строковый результат = caesarEncryption("Нью-Йорк");
System.out.println("Результат шифрования:" + результат);
System.out.println("Результат расшифровки:" + caesarDecryption(результат));
}
//Шифрование
общественная статическая строка caesarEncryption(String s) {
StringBuilder sb = новый StringBuilder();
if (s == null || s.length() < 1) {
System.out.println("Вы ничего не вводите.");
вернуть ноль;
}
если (!isAlp(s)) {
System.out.println("только ввод ABC...");
вернуть ноль;
}
s = s.toLowerCase();
int len = s.length();
for (int j = 0; j <len; j++) {
символ c = s.charAt(j);
int a = SOURCE.indexOf(c);
если (а == LEN -1) а = -1;
если (а == LEN -2) а = -2;
если (а == LEN - 3) а = -3;
sb.append(SOURCE.charAt(a + 3));
}
вернуть sb.toString();
}
//Расшифровка
общественная статическая строка caesarDecryption(String s) {
StringBuilder sb = новый StringBuilder();
if (s == null || s.length() < 1) {
System.out.println("Вы ничего не вводите.");
вернуть ноль;
}
если (!isAlp(s)) {
System.out.println("только ввод ABC...");
вернуть ноль;
}
s = s.toLowerCase();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int a = SOURCE.indexOf(c);
если (а == 2) а = LEN + 2;
если (а == 1) а = LEN + 1;
если (а == 0) а = LEN;
sb.append(SOURCE.charAt(a - 3));
}
вернуть sb.toString();
}
public static boolean isAlp(String s) {
String p = "^[A-Za-z]+$";
Шаблон шаблона = Pattern.compile(p);
Сопоставитель = шаблон.Сопоставитель(и);
если (matcher.find()) {
вернуть истину;
}
вернуть ложь;
}
}