如果用户键入的数字不是';t available以下消息在java控制台中打印
您好,我需要一个程序的帮助,我目前正在工作,因为我是一个noob与java 它基本上是一个简单的控制台程序,提示用户选择3个选项:退出、加载第一个播放列表和加载第二个播放列表。 我需要添加某些功能,例如当用户键入字母而不是数字时,将显示一条消息,提示用户键入数字而不是字母。如果用户输入不同的数字而不是1,2,3,则会出现一条消息,提示用户选择其中一个数字如果用户键入的数字不是';t available以下消息在java控制台中打印,java,if-statement,Java,If Statement,您好,我需要一个程序的帮助,我目前正在工作,因为我是一个noob与java 它基本上是一个简单的控制台程序,提示用户选择3个选项:退出、加载第一个播放列表和加载第二个播放列表。 我需要添加某些功能,例如当用户键入字母而不是数字时,将显示一条消息,提示用户键入数字而不是字母。如果用户输入不同的数字而不是1,2,3,则会出现一条消息,提示用户选择其中一个数字 private ExampleOption getOptionFromUser() { Scanner in = new Scann
private ExampleOption getOptionFromUser() {
Scanner in = new Scanner(System.in);
while (true) {
int num = in.nextInt();
for (ExampleOption option : options) {
if (option.getOptionNumber() == num) {
return option;
}
}
}
}
谢谢您需要做的第一件事是允许用户输入任何内容,
Scanner#nextLine
将允许您获取用户输入的所有内容。然后可以使用Integer.parseInt
解析结果,并根据该操作的成功,返回/继续或显示某种错误消息
public int getInt(Scanner scanner, String prompt) {
int result = -1;
boolean validOption = false;
do {
System.out.print(prompt);
String text = scanner.nextLine();
try {
result = Integer.parseInt(text);
validOption = true;
} catch (NumberFormatException exp) {
System.err.println(text + " is not a valid integer, please try again");
}
} while (!validOption);
return result;
}
例如,您可以将其包装在方法中并重新使用代码。准备好后,甚至可以添加范围检查(查看值是否在可接受范围内)
同样,您也可以使用nextInt
public int getInt(Scanner scanner, String prompt) {
int result = -1;
boolean validOption = false;
do {
System.out.print(prompt);
try {
result = scanner.nextInt();
validOption = true;
} catch (InputMismatchException exp) {
if (scanner.hasNextLine()) {
scanner.nextLine();
}
System.err.println("You did not enter a valid integer value, please try again");
}
} while (!validOption);
if (scanner.hasNextLine()) {
scanner.nextLine();
}
return result;
}
但是您需要记住使用
nextLine
清除无效字符流。使用此选项,我可以输入123 456
,但只读取123
,这意味着456
将保留在流中,方法将返回123
,这可能是用户所期望的。我不清楚您的问题:您发布了一些需求和一些代码,但我看不到一个具体的问题。什么对你有用或不有用?哦,对不起,我已经创建了选项,我只是解释一下我在做什么。如果用户输入了不同的数字或字母,我基本上需要关于提示消息的if语句的帮助。in.nextInt
将阻止输入一个数字,如果您想接受对另一个next
方法的任何输入更改,例如nextLine
,然后测试输入。谢谢大家的帮助。它现在正在工作,我将添加我自己的东西。