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");

シンプルなコマンドラインテキストゲームを作ろうとしています. プロンプトに「something」を入力すると機能し、 「something」または「something else」を含まない入力を入力すると、期待どおりに機能します。ただし、「何とか何とか」と入力すると、出力されます

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 に答える