【问题标题】:Why does ('1'+'1') output 98 in Java? [duplicate]为什么 ('1'+'1') 在 Java 中输出 98? [复制]
【发布时间】:2020-05-11 10:10:32
【问题描述】:

我有以下代码:

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

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

    }
}

为什么会输出98

【问题讨论】:

标签: java system.out custom-data-type


【解决方案1】:

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

你可以找到所有的ASCII值here

'1' 映射到 ASCII 值 49(int 类型)。
因此'1' + '1' 变为49 + 49,这是一个整数 98。

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

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

如果您的目标是连接 2 个字符(意思是,您期望示例中的 "11"),请考虑先将它们转换为字符串。通过使用双引号 "1" + "1" 或提到的 here

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 字符文字看起来像单个字符串,但不是。
    【解决方案3】:

    '1' 表示一个字符,计算结果为该字符的相应 ASCII 值,1 为 49。将其中两个相加得到 98。

    【讨论】:

      【解决方案4】:

      49 是 1 的 ASCII 值。所以'1' +'1' 等于49 + 49 = 98

      【讨论】:

        【解决方案5】:

        '1' 是聊天文字,它代表 ASCII 值,即 49 所以'1'+'1'=98 的总和。

        我在这里分享ASCII 表格作为图像。如果您从 0 开始按列计数,那么1 排在第 49 位。抱歉,我附上图片以获得更好的解释。

        【讨论】:

          【解决方案6】:

          '1'char 文字,两个字符之间的 + 运算符返回一个 int。字符 '1' 的 unicode 值为 49,所以49 + 49 等于 98。

          【讨论】:

            猜你喜欢
            • 2018-08-21
            • 1970-01-01
            • 2020-10-19
            • 1970-01-01
            • 2013-03-12
            • 2023-01-26
            • 1970-01-01
            • 2014-11-11
            • 1970-01-01
            相关资源
            最近更新 更多