【问题标题】:Why do I get a number when I add chars? [duplicate]为什么我在添加字符时会得到一个数字? [复制]
【发布时间】:2021-05-31 09:07:43
【问题描述】:

我曾经决定将两个字符加在一起,它给了我一个数字。代码如下:

class Main {
  public static void main(String[] args) {
    System.out.println('a'+'b');
  }
}

输出:195

我搜索了很多地方,但我仍然无法弄清楚为什么是char + char = int。谁能给我解释一下?

注意:这不是重复的!另一个问题是询问添加的字符的数据类型。这个问题询问为什么会发生这种情况。这些是不同的问题,有不同的答案!

【问题讨论】:

  • 这是一个不错的阅读主题:vias.org/javacourse/chap07_09.html
  • 你可以在这里查看这个答案stackoverflow.com/a/8688708/9462470
  • 一种简化的思考方式是char 变量包含一个数字值,表示它在 ASCII 表中的位置。使用char 的算术运算根据其使用方式有不同的行为,因为char 包含一个数字值但代表一个字符,因此系统将根据其使用上下文执行自动转换。

标签: java char type-conversion integer


【解决方案1】:

您正在添加它们的 ASCII 值:

'a'+'b' = 97+98 = 195

【讨论】:

    【解决方案2】:

    如果你想连接,试试这个:

    System.out.println("a"+"b");
    

    【讨论】:

      【解决方案3】:

      5.1. Kinds of Conversion

      此代码将它们隐式转换为String

      System.out.println("" + 'a' + 'b'); //ab
      

      这个代码转换为double

      System.out.println(.8 + 'a' + 'b'); //195.8
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-11
        • 2015-03-30
        • 2017-04-13
        • 1970-01-01
        相关资源
        最近更新 更多