为什么我有inputMismatchException? 当输入只是整数时,结果会很好,但是当我使用双输入时,编译器抛出一个inputMismatchException。
public static void main(String[] args) {
// TODO Auto-generated method stub
// Help by Sahil Muthoo
System.out.println("Enter the radius and length of a cylinder:");
Scanner sc = new Scanner(System.in);
Pattern newlineOrSpace = Pattern.compile(System.getProperty("line.separator") + "|\\s");
sc.useDelimiter(newlineOrSpace);
double radius=sc.nextDouble();
double length=sc.nextDouble();
double area= radius*radius*Math.PI;
double volume=area*length;
System.out.println("The area is " + area);
System.out.println("The volume is " + volume);
}
例如输入:3 5它会很好。
例如输入:3.3 5它将抛出inputMismatchException
答案 0 :(得分:2)
你试过用,而不是。?喜欢3,5而不是3.5?这解决了我。
答案 1 :(得分:1)
您似乎使用了错误的语言环境。如果您没有明确告诉JVM使用哪个语言环境来解释浮点输入,它将使用您系统的(JVM)默认语言环境。
将语言环境明确设置为美国格式:
public static void main(String[] args) {
Locale.setDefaultLocale(Locale.US);
...
我将问题重现如下:
GERMANY
(小数分隔符为逗号),输入3,5
有效,但3.5
没有。US
(小数分隔符为点),输入3.5
有效,但3,5
没有。由于这是家庭作业,你应该回到你的教授,并要求澄清多语言要求: - )