我在这段代码中遗漏了什么

时间:2017-10-13 07:15:27

标签: java

这段代码应该能够读取用户输入并执行菜单选项中的任何选项,我错过了什么?样本输出

输入示例文字: 我们将继续我们在太空中的探索。

你输入了:我们将继续我们在太空中的任务。 菜单 c - 非空白字符数 w - 单词数量 f - 查找文字 r - 替换所有! s - 缩短空间 q - 退出

选择一个选项: C 非空白字符数:6

   import java.util.Scanner

    public class AuthoringAssistant {
    public static void main(String [] args) { 
    Scanner scnr = new Scanner(System.in);
    String mainString = "";

    System.out.println("Enter a sample text:");
    mainString = scnr.nextLine();


    System.out.print("You entered: ");
    System.out.println(mainString);

    return mainString;
  }

  public static void printMenu(){

      Scanner scnr = new Scanner(System.in);

      char menuChoice = '?';

      String inputString="";

      while(menuChoice != 'q'){
        System.out.println("MENU");
        System.out.println("c - Number of non-whitespace characters");
        System.out.println("w - Number of words");
        System.out.println("f - Find text");
        System.out.println("r - Replace all !'s");
        System.out.println("s - Shorten spaces");
        System.out.println("q - Quit");

        menuChoice = scnr.next().charAt(0);


        if(menuChoice == 'c'){
            getNumOfNonWSCharacters();


        }else if(menuChoice == 'w'){
            getNumOfWords();

        }else if(menuChoice == 'f'){
            findText();

        }else if(menuChoice == 'r'){
            replaceExclamation();

        }else if(menuChoice == 's'){
            shortenSpace();
        }
      }
  return;
  }

}

2 个答案:

答案 0 :(得分:0)

您从未在主要方法中调用方法printMenu(),因此它无法做到比

更多
Enter a sample text: We'll continue our quest in space.
You entered: We'll continue our quest in space. 

只需添加一行

即可
public static void main(String [] args) { 
    ...
    printMenu();
}

但你应该分享Scanner而不是instanciate two。

并删除main中的return mainString;,这是一种void方法。

答案 1 :(得分:0)

像@AxelH在评论中所述,你错过了对printMenu()功能的调用。这意味着您的程序永远不会执行该部分代码。