char c = '0';
int i = 0;
System.out.println(c == i);
Run Code Online (Sandbox Code Playgroud)
为什么这总是返回false?
Ern*_*ill 20
虽然这个问题很不清楚,但我很确定海报想知道为什么会这样打印false:
char c = '0';
int i = 0;
System.out.println(c == i);
Run Code Online (Sandbox Code Playgroud)
答案是因为每个可打印字符都被分配了一个唯一的代码编号,这就是char当被视为一个时所具有的值int.字符的代码号0是十进制48,显然48不等于0.
为什么数字的字符代码不等于数字本身?主要是因为前几个代码,特别0是太特殊,不能用于这样一个世俗的目的.
char c ='0'具有ascii代码48.该数字与s进行比较,而不是'0'.如果你想将c与s进行比较,你可以这样做:
if(c == s) // compare ascii code of c with s
Run Code Online (Sandbox Code Playgroud)
如果c ='0'且s = 48,则为真.
要么
if(c == s + '0') // compare the digit represented by c
// with the digit represented by s
Run Code Online (Sandbox Code Playgroud)
如果c ='0'且s = 0,则为真.
| 归档时间: |
|
| 查看次数: |
15967 次 |
| 最近记录: |