华为机实题

题目

要求将输入的大写字母转成对应小写的后5个,如A转换后为f;如果转换后大于z则从a重新计,即多出1就转成a,多出2就转成b以此类推。

解题

解题思路:假设输入'Z':'Z'-'A' = 25;25 + 5 = 30('E');30 % 26 = 4 (>字母总数26,要从头计数); 'a' + 4 = 'e'; %26:26个英文字母,计算:与26取余多少。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Test1 {
public static void main(String[] args) {
System.out.println(t('B'));
}

/**
* 假设输入'Z': 'Z' - 'A' = 25; 25 + 5 = 30; 30 % 26 = 4 (>字母总数26,要从头计数); 'a' + 4 = 'e';
%26:26个英文字母,计算+5之后是多少。
* @param sour
* @return
*/
public static char t(char sour) {
if ('A' > sour || 'Z' < sour) {
}
return (char) ((sour - 'A' + 5) % 26 + 'a');
}
}

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×