题解 | #简单密码#
简单密码
http://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
重点1:熟悉char字符运算规则,熟悉int类型数字转char类型字符对应的条件
重点2:找规律,3个一组,特殊情况特殊处理
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String next = sc.next();
char[] c = next.toCharArray();
for (int i=0; i<c.length;i++) {
// 小写转数字
if(c[i]>= 'a' && c[i] <= 'r'){
// +'0' 之前的结果为int2,3,要想得到 字符'2','3'。。。必须加上缺少的acall码对应的10进制数
c[i]=(char)((c[i] -'a')/3+2+'0');
// 小写特殊处理
}else if(c[i] == 's'){
c[i]= '7';
}else if(c[i] >= 't' && c[i] <= 'u') {
c[i] = (char) ((c[i] - 'a') / 3 + 2 + '0');
//小写特殊处理
}else if(c[i] == 'v') {
c[i] = '8';
}else if(c[i] >= 'w'&& c[i] <='z'){
c[i] = '9';
// 大写转小写
}else if(c[i] >= 'A' && c[i] <='Y'){
c[i] = (char)(c[i]+32+1);
// 大写特殊处理
}else if(c[i] == 'Z'){
c[i] = 'a';
}
}
// 遍历新的字符数组
for (char c1 : c) {
System.out.print(c1);
}
}
}