Java如何查看一个String是否包含多个单词?
我的问题是,如何判断html是否包含字符串中的任何内容,下面的内容不起作用。它抛出,不兼容的类型:java.lang.String中[]Java如何查看一个String是否包含多个单词?
public void run() {
Document doc;
String[] matches = new String[]{"Unavailable", "Too Short", "skin-3d"};
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt", true));
//Thread.sleep(3000);
doc = Jsoup.connect("https://t.com/s/" + line).userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0")
.referrer("http://www.google.com").ignoreHttpErrors(true).get();
//Elements ID = doc.getElementsByClass("card-header");
String html = doc.html();
if (!html.contains(matches)) {
System.out.println(line + " taken");
System.out.println(line + " is available or is only two chars");
writer.write(line + "\n");
writer.close();
} else {
System.out.println(line + " taken");
writer.close();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
if(html.contains(Bad[0]) || html.contains(Bad[1]) || html.contains(Bad[2])){
如果数组包含100个元素,该怎么办?你不会写百次html.contains ... – L01c
contains方法只需要一个参数;其中必须单个CharSequence。
您尝试传递字符串的数组。
所以一个简单的解决办法是将它改成:
boolean anyMatch = false;
for (String match : matches) {
if (html.contains(match)) {
anyMatch = true;
,后来检查anyMatch
。
备案:这是非常基本的。编译器告诉你究竟是你的代码有什么问题。当你得到一个编译器消息...然后读取它。阅读javadoc以获取正在调用的库方法。在网络中搜索错误消息的部分内容。这就是你解决这些问题的方法!
从Java API
布尔包含(CharSequence中)
返回true当且仅当此字符串包含char值的指定序列。
您不能将一个String数组赋给contains方法,而是一个String。 我建议你做一个for循环来解决问题:
boolean match = false;
for (String s : matches){
if (html.contains(s)){
match = true;
break;
}
}
您的答案与GhostCat答案相同,如果您没有任何新内容,则不需要重复答案。只要你能投票回答你认为适合这个问题的答案。谢谢 –
首先,我在同一时间写了我的答案。其次,我认为对Java API的引用非常重要。它向人们表明,研究可以提前提出问题,而且往往是找到答案的最佳途径。最后,我的解决方案似乎有点快,因为一旦找到任何元素,它就会停止循环。 – L01c
如果仅用于停止循环,您重新回答了问题,那么最好编辑第一个答案或留下评论,无论如何,您的答案中没有任何新东西只是复制和粘贴。 –
只是要清楚你要检查,如果HTML包含在阵列匹配或至少一个所有的字符串? –
是的正确,但像GhostCat的答案是垃圾邮件的网站3倍,我的时间 – nooby
什么是正确的?全部匹配还是只有一个匹配? –