java - 如何使输入可选,或如何检查输入流上是否有任何标记
问题描述
所以我想在输入列表时有选项,如果我没有放任何路径,我希望程序使用它所在的当前目录,但它只是在等待我输入一些东西。如果我不输入任何内容以使程序继续,我该怎么办。 我应该使用什么方法代替 Scanner.hasNext() o 检查输入流上是否有任何标记。
String function = scanner.next();
switch (function) {
case "list":
if (scanner.hasNext()) {
path = scanner.next();
list(path, 0);
} else {
list(System.getProperty("user.dir"), 0);
}
break;
解决方案
不能完全按照您的尝试做,但有一些选择。
选项 1 - 有不同的命令
list
vs list_default
,例如,虽然list_default
不是最漂亮的
选项 2:两个单独的提示
> Enter a command
list
> Enter directory to search (defaults to user directory)
在第二个提示之后,如果用户刚刚点击Enter
,你会使用用户 dir,但如果他输入了目录路径,你会使用它
选项 3:更复杂的命令
list
将列出用户目录,同时list /some/path
列出some/path
.
推荐阅读
- multithreading - 异步执行长时间运行的逻辑
- mod-rewrite - Apache mod_rewrite - 优先级不起作用?
- json - 试图在 ruby 中加载这个 json 文件。Json 解析器错误
- python - 如何使用 Python 下载嵌入式视频
- docker - Dockerized FastAPI 自动重载错误
- scala - 如何在 databricks 社区版笔记本中运行 scala 代码?
- windows - 使用 Terraform SSH 到 Windows Server Ec2
- c# - Log4Net 实例失控
- apache - 如何将 AllowOverdrive 设置为全部
- python - 使用 Tortoise ORM 和 FastAPI 在 Heroku 上出现 SSL 错误