简单的尝试&捕获扫描代码不使用十进制值

时间:2015-01-25 20:14:52

标签: java try-catch java.util.scanner

import java.util.Scanner;

public class Main{

public static void main(String[] args){

    Scanner a = new Scanner(System.in);

    System.out.println("Enter a number: ");

    try{

        float b = a.nextFloat();

        System.out.println("You wrote " + b);

    }catch(Exception n){

        System.out.println("That wasn't a number, yo!");

    }

    a.close();

}

}

我想扫描用户输入的号码,然后确定它是否是数字。当我输入一个十进制数字(例如3.1415)时会出现问题,因为它将其检测为非数值。

1 个答案:

答案 0 :(得分:6)

这是因为Scanner根据您的语言环境解析浮点数。当您使用,代替.时,它可以使用。例如,在德国和奥地利,通常使用,作为逗号,而不是.,因此根据您的位置,情况也可能如此。

您可以使用以下内容将Scanner的区域设置设置为US

a.useLocale(Locale.US);

然后您必须再次使用.