首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中打印数组中所有数字的总和或总和?

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

Stack Overflow用户
提问于 2014-01-18 23:05:59
回答 3查看 928关注 0票数 0

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

这是我的尝试:

代码语言:javascript
复制
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。我做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2014-01-18 23:08:53

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

执行此操作

代码语言:javascript
复制
sum = sum + Integer.parseInt(Character.toString(values[i]));

或者像@ZouZou建议的那样,可以使用

代码语言:javascript
复制
sum = sum + Character.getNumericValue(values[i]);
票数 2
EN

Stack Overflow用户

发布于 2014-01-18 23:11:44

您需要减去ascii值'0',因此您只需添加大于零的数值,而不是添加char本身的值(这是其ascii字符值):

代码语言:javascript
复制
sum = sum + values[i] - '0';
票数 0
EN

Stack Overflow用户

发布于 2014-01-19 00:40:24

下面是一个代码,用来计算数字的位数和和数字的长度:

代码语言:javascript
复制
int sum=0;
int length=0;
while(input!=0)
{
    sum+=input%10;
    input/=10;
    length++;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21205828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档