以下是代码段,
int a = 1;
char b = (char) a;
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
但我得到的是空输出.
int a = '1';
char b = (char) a;
System.out.println(b);
Run Code Online (Sandbox Code Playgroud)
我将得到1作为我的输出.
有人可以解释一下吗?如果我想在第一个片段中将int转换为char,我该怎么办?
在Java中,允许以下内容:
char c = 'A' + 1;
Run Code Online (Sandbox Code Playgroud)
这里,c将保持值'B'.在上面,首先评估表达式.所以'A'被转换为65,整个表达式的计算结果为66,然后66被转换为'B',因为我们将值存储在char中.
但是,以下内容会产生编译时错误:
char c = 'A';
c = c + 1;
Run Code Online (Sandbox Code Playgroud)
Java如何以不同方式查看表达式的解释是什么?顺便说一句,以下工作也很好:
char c = 'A';
c++;
Run Code Online (Sandbox Code Playgroud)