Java数组和字符串:练习-凯撒密码

恺撒密码
"恺撒密码"据传是古罗马恺撒大帝用来保护重要军情的加密系统。它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。
假如有这样一条指令:RETURNTO ROME
用恺撒密码加密后就成为:UHWXUQ WR URPH
这种加密方法还可以依据移位的不同产生新的变化,如将每个字母左19位,就产生这样一个明密对照表:

明:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密:T U V W X Y Z A B C D E F G H I J K L M N O P Q R S

任务:编写程序实现将输入的任意字符串(英文字符串)内容进行加密处理,并输出加密后的字符串内容。运行示例如下:
请输入要加密内容:RETURNTO ROME.
加密后内容:UHWXUAWR URPH.

运行代码:

import java.util.Scanner;

public class KaiserSecret {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入要加密的内容:");
		String txt;
		txt = sc.nextLine();
		//加密处理
		char[] chars = new char[txt.length()];
		for (int index = 0; index < txt.length(); index++) {
			char ch = txt.charAt(index);
			if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z') {
				chars[index] = (char)(Character.isLowerCase(ch)? 'a'+(ch - 'a' + 3) % 26 : 'A'+(ch - 'A' + 3) % 26);
			}else {
				chars[index] = ch;
			}
		}
		
		System.out.println(new String(chars));
		
		sc.close();

	}

}

你可能感兴趣的:(Java学习)