0

我在 while 循环中遇到了 contains java 方法的问题,这就是我的代码的样子

Scanner input = new Scanner(System.in)
String s = "";
int moveOn = 0;
while (moveOn == 0) {
            if (s.equals("")){
                System.out.println("blah 1");
                System.out.print("> ");
                s = input.next();
                System.out.println();
            }
            else if (s.contains("something") ||
                     s.contains("something else")) {
                System.out.println("blah 2");
                moveOn++;
            } else {
                System.out.println("blah 3");
                s = "";
            }
}
moveOn = 0;

System.out.println(s + " <- s test");

我正在尝试制作一个简单的命令行文本游戏。如果您在提示符处输入“某物”,那么它会起作用,如果您输入的输入没有“某物”“其他东西”,它会按预期工作。但是如果你输入“blah blah something”,它会输出

blah 1
> blah blah something

blah 3
blah 1
> 
blah 3
blah 1
> 
blah 2
something <- s test

基于这种行为,我很确定这是我不理解的 contains 方法。我确定这很简单,但是有人知道我做错了什么吗?

4

1 回答 1

1

Scanner.next()返回下一个标记,标记的默认分隔符是空格,因此输入的结果blah blah something值为blah.

此外,您的moveOn变量应该是一个布尔值。

于 2013-02-23T08:56:01.487 回答