只让用户输入正整数(没有小数或字符串)?

Jak*_*ake 6 java string integer input

我知道如何要求用户输入正整数,但我不知道如何处理代码以避免输入错误,如十进制或字符串输入.

  int seedValue;
  double angle, gunpowder;

  System.out.println("Please enter a positive integer seed value: ");
  seedValue = input.nextInt();

     while (seedValue <= 0) {  
        System.out.println("Please enter a positive integer seed value: ");
        seedValue = input.nextInt();
     }

     System.out.println("That target is " +
      threeDec.format(gen.nextDouble() * 1000) + "m away.");
Run Code Online (Sandbox Code Playgroud)

Jun*_*san 8

这可能是一个approch:

  • 使用输入作为string值读取输入Scanner.readLine();
  • 尝试使用Integer.parseInt方法将字符串转换为int .NumberFormatException如果输入字符串包含小数和无效数字,则此方法将抛出此方法.
  • 如果在上一步中正确解析了输入值,则检查是否为负数