输入字符串到整数扫描器

时间:2016-11-01 14:15:01

标签: java java.util.scanner

我想说当有人试图在此代码中输入字符串时输入一个整数。

你能帮助我吗?

这是我的代码:

        import java.util.Scanner;
        public class kl {
            public static void main(String[] args) {
                boolean primen = true;
                Scanner input = new Scanner(System.in);
                System.out.print("Please enter a positive integer that is prime or not : ");
                int ncheck = input.nextInt();
                if (ncheck < 2) {

                    primen = false;

                }
                for (int i = 2; i < ncheck; i++) {
                    if (ncheck % i == 0) {
                        primen = false;
                        break;
                    }
                }
                if (primen == true) {
                    System.out.println(ncheck + " is a prime number.");
                }
                else {
                    System.out.println(ncheck + " is not a prime number.");
                }
            }
        }

2 个答案:

答案 0 :(得分:0)

您可以在此处找到您的解决方案:Exception handling,或使用以下代码

这是您的完整代码:

while(true){
System.out.print("Please enter a positive integer that is prime or not : ");
try{
   int i = input.nextInt();
   break;
}catch(InputMismatchException e){
   System.out.print("Wrong type input, pls try again!");
   input.nextLine(); \\ prevent infinite loop
}

您可以看到:我使用Exception句柄处理器捕获InputMismatchException并在控制台上打印消息。您可以使用Exception替换InputMismatchException。它是java中最大的Exception Handler类

答案 1 :(得分:0)

Scanner可以使用两种方法。

  • 调用nextInt(),然后捕获并处理下一个输入标记不是整数时将获得的InputMismatchException

  • 致电hasNextInt()。如果返回true,则调用nextInt()

在任何一种情况下,如果您期望一个整数并且用户输入了其他内容,则nextInt()hasNextInt()将&#34;消费&#34;意想不到的人物。因此,如果您希望用户再次尝试,则需要调用nextLine(),这将读取该行上的所有剩余字符。你通常会丢弃它们。

有关处理例外的更多信息:

有关使用Scanner的更多信息: