在 Java 中递增字符类型

2022-09-01 08:15:31

在练习Java时,我随机想出了这个:

class test
{
    public static void main(String arg[])
    {
        char x='A';
        x=x+1;
        System.out.println(x);
    }
}

我认为它会抛出一个错误,因为我们无法在数学中将数值添加到字母中,但是以下程序可以正常运行并打印1A

B 

这怎么可能?


答案 1

在 Java 中,是一种数值类型。当您添加到 时,您将到达下一个 unicode 码位。在 的情况下,下一个码位是:char1char'A''B'

char x='A';
x+=1;
System.out.println(x);

请注意,您不能使用,因为它会导致隐式缩小转换。您需要使用其中之一或代替。x=x+1x++x+=1


答案 2

A 实际上映射到一个 ,看看 Ascii 表charint

例如:大写字母 A 对应于十进制数 65。当你将1加到该值时,你基本上将十进制数递增1。因此,该数字变为 66,对应于大写字母 B。char


推荐