为什么 ('1'+'1') 在 Java 中输出 98?

Rob*_*bin 14 java custom-data-type system.out

我有以下代码:

class Example{
    public static void main(String args[]){

        System.out.println('1'+'1');

    }
}
Run Code Online (Sandbox Code Playgroud)

为什么会输出98

Aru*_*wda 19

在 java 中,每个字符文字都与一个 ASCII 值相关联,该值是一个Integer.

您可以在此处找到所有 ASCII 值

'1'映射到 ASCII 值 49(int类型)。
因此'1'+'1'变成49 + 49了整数 98。

如果将此值转换char为如下所示的类型,它将打印 ASCII 值 98,即b

System.out.println( (char) ('1'+'1') );

如果您的目标是连接 2 个字符(意思是,您希望"11"从您的示例中得到),请考虑先将它们转换为字符串。要么使用双引号,"1" + "1"要么像这里提到的那样。


Mur*_*nik 6

'1'是一个char文字,+两个chars之间的运算符返回一个int。字符'1'的 unicode 值是 49,因此当您添加其中两个时,您会得到 98。