gpt4 book ai didi

java - 当尝试用 Java 将一个数字的数字相加时,5+0 = 53?

转载 作者:行者123 更新时间:2023-12-01 16:45:48 25 4
gpt4 key购买 nike

我正在尝试创建一个基本函数来将数字的数字相加,因此输入 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com