题目:
输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。
程序要求:该字符串只包含小写字母,若其值加5后的字符值大于’z’,将其转换成从a开始的字符。
思路:
利用ACSII码可以转化为对应的十进制的值做文章,代码如下
/*
输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。
程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符。
*/
public class Test3 {
public static void printAfterChangeStr(String str) {
StringBuilder stringBuilder = new StringBuilder();
for (char c: str.toCharArray()) {
int temp = (int)c + 5;
//如果temp小于122,直接转化
if (temp <= 122) {
stringBuilder.append((char)temp);
} else {
//如果temp大于122,从a开始循环,这里减1是因为a自己也占一个位置
temp = (temp - 122 - 1) + 97;
stringBuilder.append((char)temp);
}
}
System.out.println(str + " => " +stringBuilder);
}
public static void main(String[] args) {
//测试ASCII码a对应的十进制的值
System.out.println((int)'a');
//测试ASCII码z对应的十进制的值
System.out.println((int)'z');
String str = "adz";
printAfterChangeStr(str);
}
}
测试结果