Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密

更新时间:2020-04-20 11:27:56 点击次数:1224次
凯撒密码加密
题目
问题描述

给定一个单词,请使用凯撒密码将这个单词加密。
凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移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);
}

}

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

回到顶部
嘿,我来帮您!