2013-02-23 78 views
0
有麻煩

IM與包含while循環中的Java方法,這是我的代碼是什麼樣子contains方法

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一行文字遊戲。如果你在提示框中輸入「東西」,那麼它可以工作,如果你把一個輸入沒有「東西」「別的東西」它按預期工作。但如果你輸入「等等等等東西」它將輸出

blah 1 
> blah blah something 

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

即時通訊相當確信基於這樣的行爲,這件事情與包含的方法,我不明白。我確定這很簡單,但是有人知道我做錯了什麼嗎?

回答

1

Scanner.next()返回下一個標記,並且標記的默認分隔符是空格,因此輸入blah blah something的結果值爲blah

此外,您的moveOn變量應該是一個布爾值。

+0

好的,這很有道理謝謝你!你如何建議閱讀整個行? – SavgStorm 2013-02-23 09:05:48

+0

閱讀javadoc。只要你問自己這樣一個問題,你就應該把它加上書籤並閱讀。 http://docs.oracle.com/javase/6/docs/api/java/util/Scanner.html#nextLine%28%29 – 2013-02-23 09:07:44

+0

whoa wtf我看,並沒有看到nextLine方法。哇,我累了thnx的幫助!胡說,傻解決我應該知道更好。 – SavgStorm 2013-02-23 09:10:57

相關問題