确定数字是不是是 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 中的输入? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
怎样在excel单元格里让本来有的数字和新输入的数字自动相加?