我正在为我班上班做作业。我写了一个方法来输入一个错误,如果输入一个不正确的整数,我试图在输入字符串而不是int时给出错误消息,但我不知道如何。我不允许使用parsInt或内置字符串方法。我将不胜感激任何帮助。
int playerNum = stdin.nextInt();
while (invalidInteger(playerNum) == -1 || invalidInteger(playerNum) == -2 || invalidInteger(playerNum) == -3)
{
if(invalidInteger(playerNum) == -1)
{
System.out.println("Invalid guess. Must be a positive integer.");
System.out.println("Type your guess, must be a 4-digit number consisting of distinct digits.");
count++;
}
if(invalidInteger(playerNum) == -2)
{
System.out.println("Invalid guess. Must be a four digit integer.");
System.out.println("Type your guess, must be a four digit number consisting of distinct digits.");
count++;
}
if(invalidInteger(playerNum) == -3)
{
System.out.println("Invalid guess. Must have distinct digits.");
System.out.println("Type your guess, must be a four digit number consisting of distinct digits.");
count++;
}
playerNum = stdin.nextInt();
}
添加了此代码段以捕获异常。感谢almas shaikh。
try {
int playerNum = scanner.nextInt();
//futher code
} catch (InputMismatchException nfe) {
System.out.println("You have entered a non numeric field value");
}
答案 0 :(得分:1)
使用以下代码:
try {
int playerNum = scanner.nextInt();
//futher code
} catch (InputMismatchException nfe) {
System.out.println("You have entered a non numeric field value");
}
当您输入字符串而不是整数时,扫描程序抛出InputMismatchException。因此,下次当您尝试输入String时,它将抛出InputMismatchException异常,您可以捕获异常并说您让用户知道用户输入了无效输入并让他重试。
答案 1 :(得分:0)
好吧,您可以使用next()
获取String
的值,然后解析该值,看看是否输入了String
或Integer
。
String str = stdin.next();
for (char c:str.toCharArray()) {
if (!Character.isDigit(c)) {
throw new IllegalArgumentException("Invalid character entered: " + c);
}
}
答案 2 :(得分:0)
检查java doc for nextInt() - 是stdin扫描器吗?如果是这样,如果输入了一些非整数文本,则nextint()将抛出异常。您可能想要捕获它并打印自己的漂亮错误。但是,你可能会比任务期望更进一步。短语"如果输入了错误的整数,则抛出错误"可能意味着只会输入整数。这取决于教师/班级。
答案 3 :(得分:0)
import java.util.*;
public class Test
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
try
{
int i = in.nextInt();
}
catch(InputMismatchException e)
{
e.printStackTrace();
}
}
}
我希望这会以服务器为例。当你给一个字符串或字符串。异常被提出。