MarcusV(南墙大佬的搬运工)

南墙大佬的CSDN博客地址

导航

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);
	}

}


posted on 2020-04-13 16:35  MarcusV  阅读(60)  评论(0编辑  收藏  举报