首页 > 解决方案 > 向用户询问包含文件名混淆的命令

问题描述

在我程序的这一部分中,我要求用户输入命令和文件名。该命令可以是“读取”、“内容”或“计数”。在所有不同的任务中,我都需要一个文件。我希望用户在控制台中输入如下内容:

read Alice's Adventures In Wonderland.txt

出于某种原因,我不知道如何在 1 个命令中实现这一点。现在,我首先询问文件名,然后询问如何处理它。以下示例是“读取”命令,它请求文件并计算文件中的所有单词:

case "read":
            int nrWords=countAllWords();
            System.out.println("The number of words in this file is: "+nrWords+"\n");
            break;

.

 private static int countAllWords() throws IOException
  {
    Scanner input=new Scanner(System.in);
    System.out.println("Please enter file name: ");
    String fileName=input.nextLine();

    FileInputStream inputStream=new FileInputStream(fileName);
    BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
    String line=bufferedReader.readLine();
    int nrWords=0;

    while(line!=null)
    {
      String[] wordsInLine=line.split(" ");
      nrWords=nrWords+wordsInLine.length;
      line=bufferedReader.readLine();
    }
    return nrWords;
  }

有人可以解释我如何将这两个命令放入一个句子中,我的代码可以理解与什么相关的内容吗?

标签: javaarraysreader

解决方案


相反,您可以在这里做的是使用 split 函数来分解您的命令,如下所示:

String line = bufferedReader.readLine();
String command = line.split(" ")[0];
String fileName = line.substring(command.length);

这样你的文件名将是字符串的其余部分,而命令只是第一个元素。command应该是命令并且fileName应该是文件名。


推荐阅读