Java 中使用 charAt() 对整数中的数字求和的问题

Problem with suming up digits in an integer with charAt() in Java

我有一个整数,我的目标是求和该整数中的数字

我试过 charAt();但奇怪的是当我试图用他们的

检查数字时

索引它工作得很好,但我不明白的部分是当我试图总结它们时

为什么 2 + 2 是 100

Scanner scanner = new Scanner(System.in);

    int number = scanner.nextInt();

    String string_number = Integer.toString(number);

    System.out.println(string_number.charAt(0));
    System.out.println(string_number.charAt(1));

    System.out.println(string_number.charAt(0) + string_number.charAt(1));

输入 22

输出

2
2
100

您正在计算字符的 ASCII 值之和。 字符 '2' 的 ASCII 值为 50。因此,您要添加 5050.

您需要先将字符转换为数字。

Java 中的一个字符接近其 unicode 代码点。 '2' 的 unicode 代码点是... 0x32 或 50!

是的,50 + 50 是 100...

好在一个十进制数的值保证是c - '0',所以你要的是:

System.out.println((string_number.charAt(0) - '0') + (string_number.charAt(1) - '0'));