一段代码了解Java中char和int的转换
题目要求:
将输入的大写字母转成对应小写的后5个,如A转换后为f;如果转换后大于z则从a重新计,即多出1就转成a,多出2就转成b以此类推。
Java代码:
private static char exchange(char c) {
if (c > 'Z' || c < 'A') {
throw new RuntimeException("必须为26个大写字母中的一个");
}
int begin = 'a', end = 'z', cur = Character.toLowerCase(c);
cur = cur + 5;
if (cur > end) {
cur = cur - end - 1 + begin;
}
return (char) cur;
}
Java中char和int能够相互转换,他们转换的依据是依据ASCII编码。例如‘A’= 65,'z'=122
,这之间的数字都代表字母。
那么,如果我们不用字母呢,不用ASCII里面的映射,用一个汉字试试:
int i = '李';
System.out.println(i); //输入的结果:26446
那么这个数字是如何得到的呢?参看你的项目编码,我的项目编码是utf-8
,那么我查询相应的对照表即可。
放低自我,帮助旁人,却不求人前自夸!