java - 向用户询问包含文件名混淆的命令
问题描述
在我程序的这一部分中,我要求用户输入命令和文件名。该命令可以是“读取”、“内容”或“计数”。在所有不同的任务中,我都需要一个文件。我希望用户在控制台中输入如下内容:
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;
}
有人可以解释我如何将这两个命令放入一个句子中,我的代码可以理解与什么相关的内容吗?
解决方案
相反,您可以在这里做的是使用 split 函数来分解您的命令,如下所示:
String line = bufferedReader.readLine();
String command = line.split(" ")[0];
String fileName = line.substring(command.length);
这样你的文件名将是字符串的其余部分,而命令只是第一个元素。command
应该是命令并且fileName
应该是文件名。
推荐阅读
- android - 房间数据库中没有记录保存
- json - 如何为nestes字典编写jsonschema
- virtualbox - VirtualBox - 来宾 Win10 上没有声音
- kubernetes - 探索 Azure Kubernetes 卷内容
- excel - 运行时错误 91 “对象变量或未设置块变量”
- r - Matix 指数层(自定义:R 中的 Keras)
- android - Android 地理围栏不会在没有触发位置服务的情况下自行触发
- javascript - 使用 Storybook 解决组件中的绝对/别名导入
- python - 在熊猫数据框列上调用外部函数
- java - 如何在哈希图中存储二维数组元素?(第1部分)