Java 第十一屆 藍橋杯 省模擬賽 凱撒密碼加密

凱撒密碼加密

題目
問題描述

給定一個單詞,請使用凱撒密碼將這個單詞加密。
  凱撒密碼是一種替換加密的技術,單詞中的所有字母都在字母表上向後偏移3位後被替換成密文。即a變爲d,b變爲e,…,w變爲z,x變爲a,y變爲b,z變爲c。
  例如,lanqiao會變成odqtldr。

輸入格式

輸入一行,包含一個單詞,單詞中只包含小寫英文字母。

輸出格式

輸出一行,表示加密後的密文。

樣例輸入

lanqiao

樣例輸出

odqtldr

評測用例規模與約定

對於所有評測用例,單詞中的字母個數不超過100。

PS:
充分利用JDK,雖然看起來多,其實寫起來方便,方法都有提示的
只需要對xyz這三個做特殊處理就可以了,記得大小寫都做處理,

package 省模擬賽;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class 凱撒密碼 {
	public static void main(String[] args) throws IOException {
//		Scanner sc = new Scanner(System.in);
//		String s=sc.next();
		String s=(new BufferedReader(new InputStreamReader(System.in))).readLine();
		char[] str =s.toCharArray();
		StringBuilder sb = new StringBuilder("");
		for (int i = 0; i < str.length; i++) {
			//判斷大寫字母							這裏是相同意義的
			if(Character.isUpperCase(str[i])){//	str[i]>='A'&&str[i]<='Z'
				if(str[i]=='X'||str[i]=='Y'||str[i]=='Z'){
					sb.append((char)(str[i]-'Z'+'C'));
				}
				else{
					sb.append((char)( str[i]+3));
				}
			}
			//判斷小寫字母
			else if(Character.isLowerCase(str[i])){//	str[i]>='a'&&str[i]<='z'
				if(str[i]=='x'||str[i]=='y'||str[i]=='z'){
					sb.append((char)(str[i]-'z'+'c'));
				}
				else{
					sb.append((char)( str[i]+3));
				}
			}
			 
		}
		System.out.println(sb);
	}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章