一段代码了解Java中char和int的转换

  
题目要求:  

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

Java代码:
```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里面的映射,用一个汉字试试: ```java int i = '李'; System.out.println(i); //输入的结果:26446 ``` 那么这个数字是如何得到的呢?参看你的项目编码,我的项目编码是`utf-8`,那么我查询相应的对照表即可。



原文地址:https://www.cnblogs.com/china-li/p/3373985.html