一段代码了解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,那么我查询相应的对照表即可。

posted @ 2013-10-17 13:36  轩辕李  阅读(1520)  评论(0编辑  收藏  举报