确定数字是不是是 Java 中的输入? [复制]

Posted

技术标签:

【中文标题】确定数字是不是是 Java 中的输入? [复制]【英文标题】:Figuring out if a number is an input in Java? [duplicate]确定数字是否是 Java 中的输入? [复制] 【发布时间】:2014-02-18 04:08:27 【问题描述】:

我制作了一个程序,要求用户输入 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");
    

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

【问题讨论】:

查看Integer.parseInt(String),看看它如何处理接收非数字的东西。 研究..尝试一些东西..如果它不起作用,请返回您尝试的代码的帮助。 *** 我确实尝试了 integer.parseint(String) 方法和 try catch 方法。我会研究这些链接。 也许使用第三方库? commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/… 【参考方案1】:

您可以使用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");

【讨论】:

' System.out.println("输入你想要的数字: "); number = in.nextInt(); \\ in 是扫描仪的名称 try if number = in.nextInt();如果(数字 >= 8) 数字 = 8; else if (number 你应该抓住InputMismatchException,而不是NumberFormatException ` System.out.println("输入你想要的数字: "); number = in.nextInt();尝试 number = in.nextInt();如果(数字 >= 8) 数字 = 8; else if (number 好吧,你在 try-catch 块之外调用in.nextInt。我什至不知道你为什么需要两个in.nextInt 电话。 所以我再次从头开始编写了您提供的代码,并且成功了,谢谢!但这并没有停止程序,程序应该在用户输入字母时结束,而应该是数字。我该怎么做?【参考方案2】:

除了 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");

【讨论】:

我正在使用扫描仪,但感谢您的回答。

以上是关于确定数字是不是是 Java 中的输入? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

win10下alt+数字输入字符

惠普笔记本人脸识别失败怎么输密码

Excel 数字显示E+ 如何修改 要求高手来

怎样在excel单元格里让本来有的数字和新输入的数字自动相加?

sql server 数据复制,订阅者只能输入发布者的别名,不能输ip地址,是否就不能做外网复制了

验证码老是错误怎么办?明明输对了。