用Java语言编写程序:有一行电文,已按下面规律译成密码: A→Z a→z B→Y b→y C→X c→x 即第1个字母变成第26个字母,第i个字母编程第(26-i+1)个字母。非字母字符不变。要求编程序将密码译回原文,并输出密码和原文
时间: 2024-05-01 14:19:14 浏览: 99
RTKLIB程序解析,主要的函数解析,资料分享
以下是Java语言的程序实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String password = scanner.nextLine();
String originalText = decryptPassword(password);
System.out.println("密码:" + password);
System.out.println("原文:" + originalText);
}
private static String decryptPassword(String password) {
StringBuilder builder = new StringBuilder();
for (char c : password.toCharArray()) {
if (Character.isLowerCase(c)) {
builder.append((char) ('z' - (c - 'a')));
} else if (Character.isUpperCase(c)) {
builder.append((char) ('Z' - (c - 'A')));
} else {
builder.append(c);
}
}
return builder.toString();
}
}
```
程序先读取输入的密码,然后调用 `decryptPassword` 方法将其解密。`decryptPassword` 方法遍历密码中的每个字符,如果是小写字母,则将其映射成对应的小写字母;如果是大写字母,则将其映射成对应的大写字母;否则保持不变。最后将解密后的原文返回即可。
阅读全文