Java 如何将用户输入解析为相应的类型

Java 如何将用户输入解析为相应的类型,java,parsing,java.util.scanner,Java,Parsing,Java.util.scanner,我需要编写一个Java程序,从用户那里获取两个输入并计算总和。这一部分很简单,但允许用户输入任何类型-int或double。我必须弄清楚如何将输入转换为用户输入的数字类型。如果他们输入一个带小数点的数字,则必须将其放入双变量中。如果它是一个普通的数字,它必须是一个整数。而且,我们不能问用户他们要用什么。如果他们输入非数字输入,我们不能抛出异常。如果用户输入7和12.4,我的程序应该如何工作 我是Java新手,一直在研究scanner类,但我不能理解这一点。我只知道如何做一种类型;这很简单。请帮忙

我需要编写一个Java程序,从用户那里获取两个输入并计算总和。这一部分很简单,但允许用户输入任何类型-int或double。我必须弄清楚如何将输入转换为用户输入的数字类型。如果他们输入一个带小数点的数字,则必须将其放入双变量中。如果它是一个普通的数字,它必须是一个整数。而且,我们不能问用户他们要用什么。如果他们输入非数字输入,我们不能抛出异常。如果用户输入7和12.4,我的程序应该如何工作

我是Java新手,一直在研究scanner类,但我不能理解这一点。我只知道如何做一种类型;这很简单。请帮忙

int a = 0;
double b = 0.0;

Scanner sc = new Scanner(System.in);

if(sc.hasNextInt()) {
   a = sc.nextInt();
} else if(sc.hasNextDouble()) {
   b = sc.nextDouble();
}

您可以使用上面的
hasNextInt()
hasNextDouble()
检查
hasInt()
hasDouble()
方法。更详细地解释为什么它“必须是int。”
double
甚至可以很好地用于存储整数值。感谢您的评论,可能是重复的!我现在将研究这些方法。此外,它必须是一个整数,因为例如,如果你输入4和5,但它们存储在双变量中,那么总和将输出9.0。0没有“智能”编程。根据我的教授,总和本身应该是一个干净简单的9。你可能需要按相反的顺序检查。
Scanner scn = new Scanner(System.in);

if (scn.hasNextDouble()){    
    double dblVal= scn.nextDouble();
}
else if (scn.hasNextInt()){
    int intVal= scn.nextInt();
}