首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java初学者在这里,我正在尝试找出如何检查扫描器输入是否为整数

Java初学者在这里,我正在尝试找出如何检查扫描器输入是否为整数
EN

Stack Overflow用户
提问于 2020-03-23 13:16:07
回答 4查看 37关注 0票数 0

我正在为一个类编写这段代码,但是我似乎不知道如何使用try-catch来处理它。我使用do-while循环在输入不是整数的情况下重复输入过程。有人告诉我要亲力亲为,尝试每一件事,所以我做到了。我知道这很奇怪。下面是我的代码:

代码语言:javascript
运行
复制
public static void main(String[] args) {


   System.out.println("This program gets ten numbers from the user, and\n" +
    "computes and displays the average.");

   Scanner input = new Scanner(System.in);
   do {

    System.out.println("Please enter integer 1");

    int integer1 = input.nextInt();
    String intStr1 = Integer.toString(integer1);

    try {

     int myInt = Integer.parseInt(intStr1);

    } catch (NumberFormatException e) {

     System.out.println("Please enter a proper integer");

     Boolean intCheck = true;

    }

   } while (intCheck == true);
EN

回答 4

Stack Overflow用户

发布于 2020-03-23 13:25:29

对于语句int integer1 = input.nextInt();,如果用户没有输入integer,程序将抛出InputMismatchException。你可以捕捉到它并做进一步的计算。因此,如果抛出异常,它就不是整数,如果不是,它就是整数。

票数 0
EN

Stack Overflow用户

发布于 2020-03-23 13:26:38

试试这个:-

代码语言:javascript
运行
复制
public static void main(String[] args) {


   System.out.println("This program gets ten numbers from the user, and\n" +
    "computes and displays the average.");

   Scanner input = new Scanner(System.in);
   do {

    System.out.println("Please enter integer 1");


    String intStr1=input.nextLine();

    try {

     int myInt = Integer.parseInt(intStr1);

    } catch (NumberFormatException e) {

     System.out.println("Please enter a proper integer");

     Boolean intCheck = true;

    }

   } while (intCheck == true);
票数 0
EN

Stack Overflow用户

发布于 2020-03-23 13:28:18

只需替换这两行

代码语言:javascript
运行
复制
 int integer1 = input.nextInt(); and
 String intStr1 = Integer.toString(integer1); 

使用

代码语言:javascript
运行
复制
 String intStr1 = input.nextLine();

您最初所做的是扫描整数(如果不是,将抛出异常)。如果这是一个错误,那么您需要刷新缓冲区以接受新的用户输入。

您可以做的是将用户输入作为整行读取(直到检测到ENTER ),然后尝试进行转换。

可以考虑的其他方法是调用intStr1.trim()来删除字符串前后的空格。

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

https://stackoverflow.com/questions/60808245

复制
相关文章

相似问题

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