题目:
密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
分析:
由题中“密码字母”和“原文字母”分析可得,可将字母分为以下情况,以“E”与“F"为分界点
则情况为:
密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
分析可得,E之前的给“密码字母”减5可得“原本文字母”,E之后的给“密码字母”加21可得“原本文字母”
因此代码如下:
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner ( System.in );
while (sc.hasNext ( )) {
String value = sc.nextLine ( );
//将字符串转换为字符数组,以便调用字符
char[] chars = value.toCharArray ( );
for (int i = 0; i < chars.length; i++) {
char c = chars[i];
if ('A' <= c ) {
//核心代码,进行大小写的转换
c = (char) ( 'E' < c ? ( c - 5 ) : ( c + 21 ) );
chars[i] = c;
}
}
System.out.println ( new String ( chars ) );
}
}
}