如何用同一条输入线制作多台扫描仪?

时间:2019-02-09 12:07:25

标签: java java.util.scanner

我正在制作一个使用Scanner对象的终端游戏。到目前为止,我做事的方式还没有问题。但是现在,我想添加“作弊码”,为此,我需要第二个Scanner。一个将用于玩家需要输入以前进的指定关键字,另一个将用于作弊代码,我将它们设置在两个单独的Thread中,以免干扰。 / p>

问题是,当我这样做时,由于有两个Scanner,所以希望玩家键入两行,但是我希望它只要求一行,并且该行是否是作弊项-code,它会执行与指定关键字不同的操作。 有什么方法可以做到,而无需完全重写我的代码?

这就是我制作Scanner对象的方法:

// show available keywords
System.out.println("[keyword1] [keyword2] [keyword3]\n");
Scanner User = new Scanner(System.in);
String user = User.nextLine();

if (user.contentEquals("keyword1")) {
    // code
}

(我对其他Thread的作弊代码也做了同样的操作

我还用了两个public static Scanner都用过的Thread进行了尝试,然后为关键字创建了一个String,并为作弊代码创建了一个java.lang.IndexOutOfBoundsException,但是,由于某些荒谬的原因,导致抛出了!null === null or !'23' === null ... false always. if (!localStorage.getItem("sec") === null) { this.setState({ seconds: localStorage.getItem("sec") }); } if (!localStorage.getItem("min") === null) { this.setState({ seconds: localStorage.getItem("min") }); } if (!localStorage.getItem("hour") === null) { this.setState({ seconds: localStorage.getItem("hours") }); }

谢谢!

1 个答案:

答案 0 :(得分:0)

一个扫描仪就足够了。

    String input1 = User.next();
    String input2 = User.next();

输入此值,并用您输入Hello World的空格分隔。 Hello进入input1,然后World进入input2