所以我想在输入列表时有一个选项,如果我没有输入任何路径,我想让程序使用当前目录,但它只是在等待我输入一些东西。我应该用什么方法来代替Scanner.hasNext()来检查输入流中是否有任何标记。
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
与 list_default
例如,虽然 list_default
不是最美
备选方案2:两个单独的提示
> Enter a command
list
> Enter directory to search (defaults to user directory)
在第二条提示之后,如果用户刚刚点击了 Enter
你会用user dir,但如果他输入了一个目录路径,你就会用那个
选项3:更复杂的命令
list
将列出用户目录,而 list /some/path
会列出 some/path
.
你有没有试过使用 scanner.nextLine() 而不是 scanner.next() ?