如何使用Java的Scanner类来确定输入的数据类型?

时间:2014-01-11 02:48:59

标签: java java.util.scanner variable-types

[对不起,如果这是一个愚蠢的问题,我在搜索谷歌搜索时遇到了很多麻烦,并且找不到问题的任何答案,即使它可能就像一个单行的答案]

我只是在我的Java编程课程网站上学习一些教程。

现在我编写的东西会打开一个提示屏,就像“请输入一个5到10之间的整数:”,并扫描数字,并为一堆不同的变量类型,不同的边界等。

超级简单的东西。我只有一个小问题。

如何告诉我的扫描方法检查变量是否为int类型?我知道这可能很明显,但如果有人输入“A”或“1.543”,我应该让它显示,“那不是一个整数!”但我不知道如何实际使用扫描仪检查变量类型

2 个答案:

答案 0 :(得分:1)

首先,因为您想要进行验证,只需将输入作为字符串读取。

String input = scanner.nextLine();

然后你要检查它是一个数字。您可以使用parse包裹在try catch

中的try{ int inputDbl = Integer.parseInt(input); } catch(NumberFormatException ex) { System.out.println("This is not a number"); } 方法
try catch

如果您想在循环中执行此操作,请将此boolean添加到返回public boolean isNumeric(String input) { try{ double inputDbl = Integer.parseInt(input); return true; } catch(NumberFormatException ex) { return false; } } 的方法中。

{{1}}

答案 1 :(得分:0)

你可以使用if(scanner.hasNextInt()){ ... }查看下一个是否有int - 一般来说,一些字符序列可以被解析为不同类型的变量,所以你必须使用每个hasNextDouble()等函数你想要的顺序。

查看here以获取完整的文档,其中可能包含许多您正在寻找的有用功能。