如何检查输入是否为整数?

时间:2014-01-10 23:43:12

标签: java loops input integer

我的教授非常沮丧,因为她没有教尝试捕捉概念,她也没有教我们抛出异常,所以我很难做这个程序。 目标是创建一个程序,要求用户输入一个整数,打印“Hello World”多次整数。问题是我无法检查以确保用户输入是整数。例如,如果用户选择键入字符 double ,我该如何将其实现到我的代码中?我不能使用抛出异常或尝试抓住因为我们还没有学习它们。谢谢你们!

 import java.util.Scanner;

public class PrintHelloWorld
{
   public static void main( String[] args )
   {
      Scanner scan = new Scanner(System.in);
      int number;

      System.out.println("Please enter an integer that shows the " + 
      "number of times to print \"Hello World\" : ");
      //store count
      number = scan.nextInt();

      System.out.print("Your integer is " + number);
      int remainder = number%1;
      int counts = 0;

      if( number>0 && remainder == 0)
      {
         while(counts <= number)
         {
            System.out.println("Hello World!");
            counts++;
            }
       }
       else
       System.out.print("Wrong, choose an integer!");

           }
         }

3 个答案:

答案 0 :(得分:2)

scan.hasNextInt()

将检查输入流中的下一个值是否为整数。

因此:

int number = -1;

System.out.println("Please enter an integer that shows the " + 
  "number of times to print \"Hello World\" : ");
//store count
if (scan.hasNextInt()) number = scan.nextInt();

if (number != -1) System.out.print("Your integer is " + number);

答案 1 :(得分:2)

您可以使用循环并使用正则表达式验证输入,如下所示:

Scanner scan = new Scanner(System.in);
String input = null;
while (true) {
    input = scan.nextLine();
    if (input.matches("\\d+")) {
        break;
    }
    System.out.println("Invalid input, please enter an integer!");
}
int number = Integer.parseInt(input);

这将继续询问输入,直到输入有效整数。

答案 2 :(得分:1)

  

我不能使用throw异常或尝试捕获因为我们没有   学习它们。

首次尝试时,您可以创建一个接受String作为参数的方法。您将循环遍历此String的所有字符,并检查每个字符是否为数字。当此方法返回false时,请重新询问用户输入新内容。

然后使用Integer.valueOf获取int值..

public static boolean isNumber(String input)
  1. 您必须使用sc.nextLine()来获取输入
  2. 方法Character.isDigittoCharArray()将非常有用