把一个数字加起来

2024-04-20 11:16:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我确实在找东西,但没能成功地找到解决办法。你知道吗

有没有办法找出一个日期的数字之和。 例如:如果日期是2016-03-14,我想把所有的数字加起来,得到17的总数。你知道吗

如果我能在python或java中得到一个答案,我将非常感激(我知道这是一个奇怪的请求,但我个人喜欢使用python,但在专业上我使用java,因此了解这两种语言的信息将对我非常有益。)

编辑\1:我必须迭代特定的天数(包括日期、月份、年份),然后将日期的各个数字相加以得到总和。你知道吗


Tags: 答案语言信息编辑专业数字java年份
3条回答

我不知道你为什么要这样做,但这里有一个简单的方法,在JAVA中使用和迭代字符数组。你知道吗

以下是代码片段:

public static void main (String[] args) 
{
    String date = "2016-03-14";
    char[] input = date.toCharArray();
    int sum = 0;
    for(char c : input) {
        if((int)(c - '0') >= 0 && (int)(c - '0') <=9)
            sum += (int)(c - '0');
    }
    System.out.println("Sum: " + sum);
}

输出:

Sum: 17

爪哇语:

int total = 0;
String str = date.toString();
for (int i = 0; i < str.length(); ++i) {
  if (Character.isDigit(str.charAt(i))) {
    total += Character.getNumericValue(str.charAt(i));
  }
}

Python:

total = 0
string = str(date)
for c in string:
  if c.isdigit():
    total += int(c)

或者,作为一个列表:

sum([int(c) for c in str(date) if c.isdigit()])

嗯。 比如:

int sum = getDigits(date.get("YEAR")) + getDigits(date.get("MONTH")) + getDigits(date.get("DAY_OF_MONTH"));

public int getDigits(int num) {
int sum = 0;
while (num > 0) {
    sum = sum + num % 10;
    num = num / 10;
}
return sum;
}

相关问题 更多 >