弄清楚数字是否是Java中的输入?

时间:2014-01-27 10:49:38

标签: java

我创建了一个程序,我要求用户输入0-8中的数字,如果不是数字,则会出现一条消息,要求输入一个数字。如果输入一个字母,在下一行会显示“请输入一个数字”。

我该怎么做?如果它超过8则保持为8,而如果它小于0则保持为0.

        if (number >= 8) {
            number = 8;
        } else if (number <= 0) {
            number = 0;
        }

更新:

    System.out.println("Enter The Number you want:<0 - 8> "); 
    number = in.nextInt(); \\ in is the name of scanner 

    try {
      if number = in.nextInt(); 
      if(number >= 8) {
        number = 8;
      } else if (number <= 0) { 
        number = 0;
      }
    } catch (NumberFormatException e) {
      System.out.println("Enter a number");
    }

这不起作用,我做错了什么?

2 个答案:

答案 0 :(得分:2)

您可以使用Scanner类从System.in读取并检查字符串是否为数字:

import java.util.Scanner;
import java.util.InputMismatchException;

Scanner sc = new Scanner(System.in);
try {
    int i = sc.nextInt();
} catch (InputMismatchException exc) {
    System.out.println("not a number");
}

答案 1 :(得分:0)

除了Nigel Tufnel的回答,如果您不使用Scanner(例如BufferedReader),您可以使用以下内容:

System.out.print("Please enter a number: ");
String numberString = in.readLine();
try {
    int number = Integer.parseInt(numberString);
    System.out.println("You chose number " + number + "!");
} catch (NumberFormatException nfe) {
    System.out.println("Please enter a number");
}