包含方法有问题

时间:2013-02-23 08:52:23

标签: java string loops contains

我在while循环中遇到包含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");

我正在尝试制作一个简单的cmd线文本游戏。如果您在提示符下输入“something”,那么它可以正常工作,如果您输入的内容不是“something”“其他内容”< / em>它按预期工作。但如果你输入“blah blah something”,它将输出

blah 1
> blah blah something

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

我非常肯定基于这种行为,这是我不理解的包含方法的东西。我确信这很简单,但有人知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

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

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