首页 > 解决方案 > 如何使输入可选,或如何检查输入流上是否有任何标记

问题描述

所以我想在输入列表时有选项,如果我没有放任何路径,我希望程序使用它所在的当前目录,但它只是在等待我输入一些东西。如果我不输入任何内容以使程序继续,我该怎么办。 我应该使用什么方法代替 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;

标签: javainputstream

解决方案


不能完全按照您的尝试做,但有一些选择。

选项 1 - 有不同的命令

listvs 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.


推荐阅读