整数浮点字符串以编程方式区分

时间:2017-05-10 05:05:38

标签: java string types floating-point integer

我想区分int / float / string输入,我试图读取

的输入
Scanner scan = new Scanner(System.in);

这提供了字符串格式的输入,如果我想检查输入是整数/浮点数还是字符串,我该怎么办? 我做了类似的事情

try{
 float i = Float.parseFloat(scan.nextLine());
 if(i%1==0){
  then it is integer
 }else{
  it is float
 }
}catch (NumberFormatException e)
 something else, may be string
}

但是java是否提供了以编程方式识别输入是否为string / int / float的方法或方法。

5 个答案:

答案 0 :(得分:1)

而不是读取 String ,然后将其解析为 Float ,然后检查它是否为整数。

您只需使用Scanner类的 hasNext 功能,如下所示为整数。

if(sc.hasNextInt()){
    int n = sc.nextInt();
    System.out.println("n... "+n);
}

如您想要完全匹配,可以尝试以下方法:

    String str = sc.nextLine();
    try{
        int a = Integer.parseInt(str.trim());
        System.out.println("It's Integer");
    }catch(Exception ex)
    {
        try{
            Float f = Float.parseFloat(str.trim());
            System.out.println("It's Float");
        }catch(Exception e){
            System.out.println(str);
        }           
    }

答案 1 :(得分:0)

据我所知,没有什么可以提供直接检查。

您可以使用Integer.parseInt并捕获NumberFormatException。该异常告诉您它不是整数。 同样,usr Float.parseFloat。如果两者都抛出异常,则输入为字符串。

答案 2 :(得分:0)

您可以在hasNextFoo中使用Scanner方法。例如,

if(scan.hasNextInt()){
    System.out.println(scan.nextInt() + " is int");
}else if(scan.hasNextFloat()){
    System.out.println(scan.nextFloat() + " is float");
}else{
    System.out.println(scan.next() + " is String");
}

答案 3 :(得分:0)

java.util.Scanner类具有验证用户输入是否为某种类型的方法

Scanner userInput = new Scanner(System.in);
            boolean hasNextInt = userInput.hasNextInt();

如果用户输入了整数,则返回true。

boolean hasNextDouble = userInput.hasNextDouble();
        System.out.println(hasNextDouble);

如果用户输入double,则返回true。否则为假

答案 4 :(得分:0)

扫描仪类有couple of methods,您可以使用它来确定下一个元素的类型。

hasNextBigDecimal()
hasNextBigInteger()
hasNextBoolean()
hasNextByte()
hasNextDouble()
hasNextFloat()
hasNextInt()
hasNextLine()
hasNextLong()
hasNextShort()

你可以像

一样使用它们
if(sc.hasNextInt()) {
    System.out.println(sc.nextInt() + " is an Integer.");
}
else if(sc.hasNextBoolean()) {
    System.out.println(sc.nextBoolean() + " is a Boolean.");
}