石家庄视频网站建设公司,信息技术课做网站,合肥网站建设兼职,wordpress模板主题实例实战教程描述
现在有一种密码变换算法。
九键手机键盘上的数字与字母的对应#xff1a; 1--1#xff0c; abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0#xff0c;把密码中出现的小写字母都变成九键键盘对应的数字#xff0c;如#xff1a;a 变成 2 1--1 abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0把密码中出现的小写字母都变成九键键盘对应的数字如a 变成 2x 变成 9.
而密码中出现的大写字母则变成小写之后往后移一位如X 先变成小写再往后移一位变成了 y 例外Z 往后移是 a 。
数字和其它的符号都不做变换。
数据范围 输入的字符串长度满足 1≤n≤100 1≤n≤100
输入描述
输入一组密码长度不超过100个字符。
输出描述
输出密码变换后的字符串
示例1 输入 YUANzhi1987 输出 zvbo9441987 最终代码实现
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;/*** 考点 英文字符大小写转换 * 大写转换成小写 32* 小写转换成大写 -32*/
public class HJ21 {//定义map容器存储按键对应数字字符的容器private static MapString,String map new HashMap();//静态初始化、加载map容器static{//与题干中的拼音九键相对应map.put(1,1);map.put(abc,2);map.put(def,3);map.put(ghi,4);map.put(jkl,5);map.put(mno,6);map.put(pqrs,7);map.put(tuv,8);map.put(wxyz,9);map.put(0,0);}public static void main(String[] args) {Scanner scanner new Scanner(System.in);String input scanner.nextLine();char[] charArray input.toCharArray();StringBuilder builder new StringBuilder();for (char c:charArray){//数字保持不变if (c0 c9){builder.append(String.valueOf(c));}else if(cA cY){//大写转换成小写然后相后移动一位char newChar (char)(c321);//或者char lowerCase Character.toLowerCase(c);char newChar (char)(lowerCase1);builder.append(String.valueOf(newChar));}else if (cZ){//特殊的Zbuilder.append(a);}else{//小写的处理SetString keys map.keySet();for (String key:keys){if(key.contains(String.valueOf(c)))builder.append(map.get(key));}}}System.out.println(builder.toString());}
}