如果用户键入的数字不是';t available以下消息在java控制台中打印

如果用户键入的数字不是';t available以下消息在java控制台中打印,java,if-statement,Java,If Statement,您好,我需要一个程序的帮助,我目前正在工作,因为我是一个noob与java 它基本上是一个简单的控制台程序,提示用户选择3个选项:退出、加载第一个播放列表和加载第二个播放列表。 我需要添加某些功能,例如当用户键入字母而不是数字时,将显示一条消息,提示用户键入数字而不是字母。如果用户输入不同的数字而不是1,2,3,则会出现一条消息,提示用户选择其中一个数字 private ExampleOption getOptionFromUser() { Scanner in = new Scann

您好,我需要一个程序的帮助,我目前正在工作,因为我是一个noob与java

它基本上是一个简单的控制台程序,提示用户选择3个选项:退出、加载第一个播放列表和加载第二个播放列表。 我需要添加某些功能,例如当用户键入字母而不是数字时,将显示一条消息,提示用户键入数字而不是字母。如果用户输入不同的数字而不是1,2,3,则会出现一条消息,提示用户选择其中一个数字

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
,然后测试输入。谢谢大家的帮助。它现在正在工作,我将添加我自己的东西。