题目描述:
他是这么变换的,大家都知道手机上的字母: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,就这么简单,渊子把密码中出现的小写字母都变成对应的数字,数字和其他的符号都不做变换,
声明:密码中没有空格,而密码中出现的大写字母则变成小写之后往后移一位,如:X,先变成小写,再往后移一位,不就是y了嘛,简单吧。记住,z往后移是a哦。
Java实现:
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { String input = sc.nextLine(); char[] inchar = input.toCharArray(); for (int i = 0; i < inchar.length; i++) { if (inchar[i] == 'a' || inchar[i] == 'b' || inchar[i] == 'c') { inchar[i] = '2'; }else if (inchar[i] == 'd' || inchar[i] == 'e' || inchar[i] == 'f') { inchar[i] = '3'; }else if (inchar[i] == 'g' || inchar[i] == 'h' || inchar[i] == 'i') { inchar[i] = '4'; }else if (inchar[i] == 'j' || inchar[i] == 'k' || inchar[i] == 'l') { inchar[i] = '5'; }else if (inchar[i] == 'm' || inchar[i] == 'n' || inchar[i] == 'o') { inchar[i] = '6'; }else if (inchar[i] == 'p' || inchar[i] == 'q' || inchar[i] == 'r' || inchar[i] == 's') { inchar[i] = '7'; }else if (inchar[i] == 't' || inchar[i] == 'u' || inchar[i] == 'v') { inchar[i] = '8'; }else if (inchar[i] == 'w' || inchar[i] == 'x' || inchar[i] == 'y' || inchar[i] == 'z') { inchar[i] = '9'; }else if (inchar[i] >= 'A' && inchar[i] < 'Z') { inchar[i] =(char)(inchar[i] + 33); }else if (inchar[i] == 'Z') { inchar[i] = 'a'; } } System.out.println(String.valueOf(inchar)); } } }
知识点:
- ASCII表中48~57为0到9十个阿拉伯数字,65~90为26个大写英文字母,97~122号为26个小写英文字母
- 字符和数字相加后需要强制类型转换才能赋值给字符变量
- String类中的静态valueOf()方法可以将字符数组转换为字符串