打印字符串,接受用户输入并使用私有String方法验证它?

时间:2017-10-04 19:55:37

标签: java methods

对于我的编程课程,我有以下任务:

  

在此作业中,您将编写一个可以为宠物建模的程序   商店。该计划将有一个宠物类来模拟个人宠物和   Assignment5类将包含main并充当宠物商店。   用户可以查看宠物,让它们一年一岁,   添加新宠物,并采用任何宠物。

我已经完成了Pet课程,但是在分配这个特定步骤时遇到了困难:

  

创建一个私有静态String方法,打印出主菜单   该计划。然后它接受来自用户的String并返回   他们的选择。列出的命令如下。一个。列出宠物   商店。湾养宠物。 C。添加一个新宠物。 d。采用宠物。即   放弃。一世。您的方法必须验证用户输入的有效输入   在返回输入之前。

private static String mainMenu(){
    return "\n" + "A. List the pets in the store." +
                    "\n" + "B. Age up the pets" + 
                    "\n" + "C. Add a new pet" + 
                    "\n" + "D. Adopt a pet" + 
                    "\n" + "E. Quit";
}

问题在于我找不到方法来打印菜单并接受和验证用户输入。你能帮我把下面的代码加入我的私有方法吗?

// Ask for letter 
    System.out.println("Type the letter to make your selection." + mainMenu());
    char letter = Character.toUpperCase((scan.next().charAt(0)));

    // Check if letter is valid. If not, ask the user to input another letter.
    while (!(letter >= 'A' && letter <= 'E')){
        System.out.println("That is not one of the options. Input another letter.");
        letter = Character.toUpperCase((scan.next().charAt(0)));
    }

2 个答案:

答案 0 :(得分:3)

我不确定您的扫描仪现在在哪里宣布,但您需要以下内容

private static String mainMenu(Scanner scan){
    String menu = "\n" + "A. List the pets in the store." +
            "\n" + "B. Age up the pets" +
            "\n" + "C. Add a new pet" +
            "\n" + "D. Adopt a pet" +
            "\n" + "E. Quit";

    System.out.println("Type the letter to make your selection." + menu);
    char letter = Character.toUpperCase((scan.next().charAt(0)));

    // Check if letter is valid. If not, ask the user to input another letter.
    while (!(letter >= 'A' && letter <= 'E')){
        System.out.println("That is not one of the options. Input another letter.");
        letter = Character.toUpperCase((scan.next().charAt(0)));
    }

    return letter + "";
}

我正在使用return letter + "";,因为letter是一个char,你的函数返回一个字符串,所以转换它的简单方法是连接空引号

看起来您已经声明了扫描仪,在这种情况下,您可以将其作为参数传递给我,或者您可以为扫描仪提供一个实例变量,最终该部分​​取决于您如何拥有其余部分您的班级结构

答案 1 :(得分:0)

重点是,在您的实现中,您将在第一行返回菜单,因此该方法不具备其他行为,我已使用您的大部分代码为此示例创建了一个类,希望你能使用它,我还将有效的输入检查移动到一个单独的方法作为某种良好的做法:)

htmleditor.setHtmlText("<img src=' " + file.toURI() + "'/>");