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
。因此,您要添加 50
和 50
.
您需要先将字符转换为数字。
Java 中的一个字符接近其 unicode 代码点。 '2' 的 unicode 代码点是... 0x32 或 50!
是的,50 + 50 是 100...
好在一个十进制数的值保证是c - '0'
,所以你要的是:
System.out.println((string_number.charAt(0) - '0') + (string_number.charAt(1) - '0'));
我有一个整数,我的目标是求和该整数中的数字
我试过 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
。因此,您要添加 50
和 50
.
您需要先将字符转换为数字。
Java 中的一个字符接近其 unicode 代码点。 '2' 的 unicode 代码点是... 0x32 或 50!
是的,50 + 50 是 100...
好在一个十进制数的值保证是c - '0'
,所以你要的是:
System.out.println((string_number.charAt(0) - '0') + (string_number.charAt(1) - '0'));