1

这只是示例代码。我的意思是:'如果找到 Hello OR foo 单词,做点什么'。但是 while 循环没有反应,即使两个字符串都在text。如果我只使用一个没有 || 的条件 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.");
   }
}
4

3 回答 3

5

您有一些运算符优先级问题。

现在,你说如果 text 不包含 hello 或者它不包含 foo 做循环;采用

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

反而。这意味着“如果文本不包含 hello 并且不包含 foo 反复用“未找到”淹没 System.out,直到用户终止您的程序或 JVM 死亡”。

于 2013-08-18T15:32:02.027 回答
3

你应该改变你的代码如下

while(!text.contains("Hello")&&!text.contains("foo"))
    System.out.println("Not found.");
   }
}
于 2013-08-18T15:33:04.390 回答
0

你也可以这样做:

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

也许这就是您在上面尝试做的事情。

于 2013-08-18T15:46:43.820 回答