java - Java中如何保证用户输入始终为Integer

标签 java integer boolean infinite-loop do-loops

我正在编写一个程序,要求用户仅输入整数作为输入。否则,程序将继续重复并要求用户再次输入值,直到它是整数。但我的代码中有一个无限循环

enter code here
boolean checkNum = false;
int numOne = 0; 
do
{
    // check if user enter integer or not
    checkNum = read.hasNextInt();
    if(!checkNum)
    {
        System.out.println("Error, please input only integer ");
    }
} while(!checkNum);
// retrieve data integer from the user 
numOne = read.nextInt();

最佳答案

试试这个

  Scanner scanner = new Scanner(System.in);
  String s = null;
     System.out.println("enter a number");
       while(!(s = scanner.nextLine().trim()).matches("\\d+"))
       {
           System.out.println("enter only intger");
       }
       int num = Integer.parseInt(s);

关于java - Java中如何保证用户输入始终为Integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60913301/

相关文章:

python - 将字符串拆分为整数时出现类型错误

PHP 打印 boolean 值是空的,为什么?

angular - 设置 boolean typescript 的默认值

java - 无法在我的 JavaScript 客户端上解码我的 Base64 字符串

java - 使用 JComboBox 作为 JTable 中的单元格编辑器的焦点问题

java - 从 Web API 返回的 JSON 可以是 double 或长精度,我如何在 Java 中最有效地处理这个问题?

Java - 将串口字节数组转换为Int?

objective-c - 如何排除 arc4random 中的数字?

forms - 如何将 Laravel 中的 boolean 值从表单传递到数据库?

java - Neo4j:模式索引查找比遗留索引慢?