如何在java中打印数组中所有数字的总数或总和?

时间:2014-01-18 15:05:59

标签: java arrays sum

我试图确定数字是奇数还是偶数,输入的长度和输入中所有数字的总和。

继承我的尝试:

public static int statNum(int input) {
    if(input % 2 == 0) {
        System.out.println("The number is even");
    } else {
        System.out.println("The number is odd");
    }

    System.out.println(Integer.toString(input).length());

    String number = String.valueOf(input);
    char [] values = number.toCharArray();

    int sum = 0;
    for (int i = 0; i < values.length; i++) {
        sum = sum + values[i];
    }
    System.out.println("The sum of this number is: " + sum);

    return input;
}

如果输入1,则总和等于49,如果我输入1234,则输入等于202.我做错了什么?

3 个答案:

答案 0 :(得分:2)

您正在添加char值,即将char的ASCII值添加到总和中,您应该在添加之前将它们解析为int

这样做

sum = sum + Integer.parseInt(Character.toString(values[i]));

或@ZouZou建议,可以使用

sum = sum + Character.getNumericValue(values[i]);

答案 1 :(得分:0)

您需要减去 char'0',因此您只需将数字值添加到零以上,而不是添加char本身的值(即其ascii字符值):

sum = sum + values[i] - '0';

答案 2 :(得分:0)

以下是查找数字和数字之和的代码。数字长度:

int sum=0;
int length=0;
while(input!=0)
{
    sum+=input%10;
    input/=10;
    length++;
}