首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >输入编译错误Java

输入编译错误Java
EN

Stack Overflow用户
提问于 2012-09-23 05:48:55
回答 2查看 100关注 0票数 1

我需要int num只接受号码。如果输入字母,就会出现错误。是否有一种方法可以立即标记字母,还是必须将num作为字符串并运行循环?

代码语言:javascript
运行
复制
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();
    }
}
EN

回答 2

Stack Overflow用户

发布于 2012-09-23 05:59:57

您必须使用Scanner.hasNextInt():

如果该扫描器输入中的下一个令牌可以使用nextInt()方法解释为默认基数中的int值,则返回true。扫描器不会超过任何输入。

代码语言:javascript
运行
复制
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);

 }
票数 1
EN

Stack Overflow用户

发布于 2012-09-23 05:53:32

你可能想做这样的事:

代码语言:javascript
运行
复制
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块中的代码将被执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12550068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档