Java如何查看字符串是否包含多个单词?
我的问题是,如何判断html是否包含字符串中的任何内容,下面的代码不起作用。它抛出不兼容的类型:java.lang.String[]Java如何查看字符串是否包含多个单词?,java,string,Java,String,我的问题是,如何判断html是否包含字符串中的任何内容,下面的代码不起作用。它抛出不兼容的类型:java.lang.String[] public void run() { Document doc; String[] matches = new String[]{"Unavailable", "Too Short", "skin-3d"}; try { BufferedWriter writer = new Buf
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();
}
}
}
contains方法只接受一个参数;它必须是一个字符序列 您尝试传递字符串的数组 因此,一个简单的解决方案是将其改为:
boolean anyMatch = false;
for (String match : matches) {
if (html.contains(match)) {
anyMatch = true;
然后检查anyMatch
记录在案:这是非常基本的。编译器准确地告诉您代码的问题是什么。当您收到编译器消息时。。。然后读它。请阅读javadoc以了解您正在调用的库方法。在网上搜索部分错误消息。这就是你解决这些问题的方法 来自JavaAPI的
布尔值包含(字符序列)
当且仅当此字符串包含指定的字符值序列时,返回true
不能为contains方法提供字符串数组,只能提供一个字符串。
我建议您执行for循环来解决您的问题:
boolean match = false;
for (String s : matches){
if (html.contains(s)){
match = true;
break;
}
}
这对我不起作用,我现在被拒绝连接,因为我连接了三次。当然,你必须做出适当的改变。严肃地说:如果这些简单的事情给你带来了很多问题:现在就考虑退一步,多学一些基础知识。如果您无法将我的示例代码放在源代码的正确位置,请不要玩弄http连接、文件读取器之类的东西。换句话说:这是您的代码,您必须确保只调用一次connect()和html()!你的答案和幽灵猫的答案一样,如果你没有新的答案,那么就不需要有重复的答案。你可以投票支持你认为对这个问题正确的答案。首先,我同时在写我的答案。其次,我认为对javaapi的引用非常重要。它向人们表明,研究可以提前提出问题,而这往往是找到答案的最佳方式。最后,我的解决方案似乎要快一点,因为一旦找到任何元素,它就会停止循环。如果只是为了停止循环,您重新回答了问题,那么最好编辑第一个答案或留下评论,不管怎样,您的答案中没有什么新内容,只是复制和粘贴。请再次阅读我的评论。谢谢。我已经读了你的评论,你是世界上Java领域最优秀、最专业的人。继续复制粘贴,祝你好运!为了明确起见,您想检查html是否包含数组中所有匹配的字符串,或者至少包含一个?是的,正确,但类似GhostCat的回答是,向网站发送垃圾邮件3次,这比我多了3次,这是正确的吗?全部匹配还是只有一个匹配?我基本上想做的是,如果html中有{“不可用”,或“太短”或“skin-3d”,那么..好的,这就是任何匹配