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