凯撒密码加密
题目
问题描述
给定一个单词,请使用凯撒密码将这个单词加密。
凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即a变为d,b变为e,…,w变为z,x变为a,y变为b,z变为c。
例如,lanqiao会变成odqtldr。
输入格式
输入一行,包含一个单词,单词中只包含小写英文字母。
输出格式
输出一行,表示加密后的密文。
样例输入
lanqiao
样例输出
odqtldr
评测用例规模与约定
对于所有评测用例,单词中的字母个数不超过100
题目分析:将字符串挨个进行分析,然后用char【】进行输出,相对来说还是比较简单的。
代码如下:
import java.util.Scanner;
public class _6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
String s=input.next();
char line[] = new char[s.length()];
for(int i=0;i<s.length();i++) {
if(s.charAt(i)=='X'||s.charAt(i)=='Y'||s.charAt(i)=='Z') {
line[i]=big(s.charAt(i));
continue;
}
if(s.charAt(i)=='x'||s.charAt(i)=='y'||s.charAt(i)=='z') {
line[i]=big(s.charAt(i));
continue;
}
line[i]=(char)(s.charAt(i)+3);
}
for(int i=0;i<line.length;i++) {//转化
System.out.print(line[i]);
}
}
private static char big(char a) {//XYZ的转化
char b=(char)(a-'Z'+'C');
return b;
}
private static char smart(char a) {//xyz的转化
char b=(char)(a-'z'+'c');
return b;
}
}
如有更好的算法,请多指教!!