在 Java 中递增字符类型
在练习Java时,我随机想出了这个:
class test
{
public static void main(String arg[])
{
char x='A';
x=x+1;
System.out.println(x);
}
}
我认为它会抛出一个错误,因为我们无法在数学中将数值添加到字母中,但是以下程序可以正常运行并打印1
A
B
这怎么可能?
在练习Java时,我随机想出了这个:
class test
{
public static void main(String arg[])
{
char x='A';
x=x+1;
System.out.println(x);
}
}
我认为它会抛出一个错误,因为我们无法在数学中将数值添加到字母中,但是以下程序可以正常运行并打印1
A
B
这怎么可能?
在 Java 中,是一种数值类型。当您添加到 时,您将到达下一个 unicode 码位。在 的情况下,下一个码位是:char
1
char
'A'
'B'
char x='A';
x+=1;
System.out.println(x);
请注意,您不能使用,因为它会导致隐式缩小转换。您需要使用其中之一或代替。x=x+1
x++
x+=1
A 实际上映射到一个 ,看看 Ascii 表。char
int
例如:大写字母 A 对应于十进制数 65。当你将1加到该值时,你基本上将十进制数递增1。因此,该数字变为 66,对应于大写字母 B。char