对话框中给出日期的数字总和

时间:2017-09-22 20:23:18

标签: java

这个问题的关键是要打开一个对话框,让它以yyyy格式询问你的姓名和出生日期;然后给你你的出生日期数字的总和。例如,如果您出生于1999年,该程序将输出“X:您出生日期的数字总和为28”。

这是我目前的代码。我只是计算了数字的总和。

import javax.swing.JOptionPane;
import java.util.Scanner;

public class Age {
    public static void main(String[] args) {
        String name;
        String inputString;
        int age;

        name = JOptionPane.showInputDialog("What is " + "your name");
        inputString = JOptionPane.showInputDialog("Enter the year " + "of your birth in yyyy format");

        //this is where the calculations will go//

        JOptionPane.showMessageDialog(null, "Hello " + name + " your age is" + inputString);
        System.exit(0);
    }
}

2 个答案:

答案 0 :(得分:1)

您应该检查年份中的每个字符并将其整数表示相加,如下所示:

int sum = 0;
for(int i = 0; i < inputString.length(); i++){
  sum += Integer.parseInt(""+inputString.charAt(i));
}
System.out.println(sum);

You can check it out on tio.run

答案 1 :(得分:1)

使用Java 8获得此功能的另一种方法是:

inputString.chars()                             // get a stream of int with the char code point values
        .mapToObj(c -> (char) c)                // convert each element to its char representation
        .mapToInt(Character::getNumericValue)   // convert each char to int
        .sum();                                 // sum all elements in the stream

我还建议验证输入以避免异常。您可以使用正则表达式:

if(inputString.matches("\\d{4}")){
    // do your sum
}else{
    // warn the user
}