在这段代码中:
c = (char)(c - 'A' + 'a');
Run Code Online (Sandbox Code Playgroud)
我们为什么需要(char)?这是类型铸造吧?
假设c赋值语句的右侧是大写字母.我假设我们在这里进行Unicode加法和减法.
这是我正在阅读的Java书籍的片段:
对char进行算术运算时,首先将其转换为在Unicode系统中表示它的int.从变量c中减去'A'基本上要求"大写字母在c中的字符有多远?"添加'a'然后产生与小写字母字符代码序列相同距离的int.需要转换为char,因为char是一种特殊类型的int,具有更有限的值范围.通过使用强制转换,程序员确认他或她理解赋值的特殊性质,并期望值在正确的范围内,0到66535.
我不明白(char)演员的观点?如果我们不使用(char)演员会有什么不同?什么是更普遍的铸造?
char是Java中的一个整数类型,当你执行算术时,结果是一个int(JLS-4.2.2.整数运算部分地说是数值运算符,它产生一个类型的值int或者long添加包含加法运算符的值)+和-).
char c = 'A';
System.out.printf("'%c' = %d%n", c, (int) c);
int d = (c - 'A' + 'a'); // c - 65 + 97
System.out.printf("'%c' = %d%n", (char) d, d);
Run Code Online (Sandbox Code Playgroud)
我明白了
'A' = 65
'a' = 97
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1019 次 |
| 最近记录: |