在java中添加两个char数据类型

Ran*_*hir 5 java ascii char

情况1:

char c='A'+'A'; 
System.out.println(c);   // print question mark (?)
Run Code Online (Sandbox Code Playgroud)

案例2:

char c1='A';
char c2='A'+c1;   // Compile time error
System.out.println(c2);   
Run Code Online (Sandbox Code Playgroud)

在case1中我有逻辑当我添加两个字符文字时,ascii值的总和是打印,这相当于问号的ascii值.但在case2中为什么编译时错误显示' 无法从int转换为char '

如果char + char = int则此规则必须适用于这两种情况.

404*_*und 1

两个或多个 int 类型或低于 int 的变量相加将得到 int 类型。

所以你所做的char c2 = 'A' + c1;实际上并没有给你一个 char 结果。它为您提供了 int 结果,您试图将其隐式类型转换为 byte,这会给您带来编译时错误。

摘要 Char + Char = Int 并且 Char 不能直接存储 Int。

尝试这样做 char c2 = (char)('A' + c1);

这里你显式地将 int 值强制转换为 char 类型告诉编译器你已经准备好接受可能发生的有损转换