我需要int num只接受号码。如果输入字母,就会出现错误。是否有一种方法可以立即标记字母,还是必须将num作为字符串并运行循环?
import java.util.Scanner;
public class Test 
{        
    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in);
        System.out.println("Input a number.");
        int num = input.nextInt();
    }
}发布于 2012-09-23 05:59:57
您必须使用Scanner.hasNextInt():
如果该扫描器输入中的下一个令牌可以使用nextInt()方法解释为默认基数中的int值,则返回true。扫描器不会超过任何输入。
public static void main(String[] args) 
 {
 System.out.println("Input a number.");
 Scanner sc = new Scanner(System.in);
 System.out.print("Enter number 1: ");
 while (!sc.hasNextInt()) sc.next();
 int num = sc.nextInt();
 System.out.println(num);
 }发布于 2012-09-23 05:53:32
你可能想做这样的事:
import java.util.InputMismatchException
import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Input an integer.");
        int num = 0;  // or any other default value
        try {
            num = input.nextInt();
        } catch (InputMismatchException e) {
            System.out.println("You should've entered an integer like I told you. Fool.");
        } finally {
            input.close();
        }
    }
}如果用户输入的不是整数,catch块中的代码将被执行。
https://stackoverflow.com/questions/12550068
复制相似问题