2013-08-18 185 views
1

這只是示例代碼。我的觀點是:'如果發現了Hello OR foo單詞,請執行某項操作'。但while循環沒有反應,即使這兩個字符串都在text之間。如果我只使用一個沒有||的情況while循環做我期望的。不能修復這個問題?謝謝!使用||在while循環中

public void start(){ 
Document doc=Jsoup.connect("http://www.yahoo.com").get(); 
String text=doc.text(); 

while(!text.contains("Hello")||!text.contains("foo")) 
    System.out.println("Not found."); 
    } 
} 
+0

你的意思是使用'&&'...... –

+0

你絕對需要在循環內改變文本***,否則所有的都會丟失,你的循環風險永遠不會結束。如果您已經這樣做了,那麼請向我們展示並避免發佈一些類型的代碼。張貼真實的代碼,以便我們理解它。 –

回答

5

您有一些運算符優先級問題。

現在,你說如果文本不包含你好,或者它不包含foo做循環;使用

while(!text.contains("Hello")&&!text.contains("foo")) 

代替。這意味着「如果文本不包含hello並且不包含foo,那麼直到用戶殺死你的程序或JVM死亡時,才用System.out」找不到「。

3

如下

while(!text.contains("Hello")&&!text.contains("foo")) 
    System.out.println("Not found."); 
    } 
} 
0

你應該改變你的代碼,你也可以這樣做:

while(!(text.contains("Hello") || text.contains("foo"))){...} 

也許這就是你試圖上面做。