简单的try&catch代码,用于扫描不使用十进制值

Arn*_*nau 1 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();

}

}
Run Code Online (Sandbox Code Playgroud)

我想扫描用户输入的号码,从而确定它是否是数字.当我输入诸如3.1415之类的十进制数时会出现问题,因为它将其检测为非数值.

Min*_*ock 6

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

您可以使用以下方法设置Scannerto 的语言环境US:

a.useLocale(Locale.US);
Run Code Online (Sandbox Code Playgroud)

然后你将不得不.再次使用.