作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个基本函数来将数字的数字相加,因此输入 54
将输出 9
。当前输入 54
会输出 105
。我的代码是:
public static void main(String[] args) {
System.out.println(sumOfDigits(54));
}
public static int sumOfDigits(int num) {
int sum = 0;
char digit;
for(int x = 0;x < (Integer.toString(num).length()); x++) {
digit = Integer.toString(num).charAt(x);
//This Prints 'Sum: 0 Digit: 5'
System.out.println("Sum:" + sum + " Digit: " + digit);
sum += digit;
//This Prints 'Sum: 53 Digit: 5'
System.out.println("Sum: " + sum + " Digit: " + digit);
}
return(sum);
}
加法之前的 println 打印 Sum: 0 Digit: 5
然后打印 Sum: 53 Digit: 5;
(第一次循环),所以它在我看来,它是将 0 和 5 加在一起,得到 53。我不知道这里发生了什么,任何帮助将不胜感激。
最佳答案
Java 使用 Unicode,这意味着 char 的值是 Unicode 值。您应该在添加它们之前将其转换为数字值。所以尝试下面的代码:
public static void main(String[] args) {
System.out.println(sumOfDigits(54));
}
public static int sumOfDigits(int num) {
int sum = 0;
char digit;
for(int x = 0;x < (Integer.toString(num).length()); x++) {
digit = Integer.toString(num).charAt(x);
//This Prints 'Sum: 0 Digit: 5'
System.out.println("Sum:" + sum + " Digit: " + digit);
sum += (digit - '0');
//This Prints 'Sum: 53 Digit: 5'
System.out.println("Sum: " + sum + " Digit: " + digit);
}
return(sum);
}
关于java - 当尝试用 Java 将一个数字的数字相加时,5+0 = 53?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51413067/
我是一名优秀的程序员,十分优秀!