Java如何查看String是否包含多个单词?

时间:2016-08-12 08:52:27

标签: java string

我的问题是,如何判断html中是否包含字符串中的任何内容,以下内容不起作用。抛出不兼容的类型:java.lang.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();
        }

    }
}

3 个答案:

答案 0 :(得分:2)

contains方法只接受一个参数;必须有一个 CharSequence

您尝试传递数组字符串。

因此,一个简单的解决方案是将其更改为:

boolean anyMatch = false;
for (String match : matches) {
  if (html.contains(match)) {
   anyMatch = true;

稍后检查anyMatch

记录:这是非常基本的。编译器告诉你完全你的代码有什么问题。当您收到编译器消息时......然后读取它。阅读javadoc以获取您正在调用的库方法。在网上搜索错误消息的部分内容。这就是你解决这些问题的方法!

答案 1 :(得分:1)

来自Java API

  

布尔 包含(CharSequence s)

     

当且仅当此字符串包含指定的char值序列时,才返回true。

您不能将一个String数组赋予contains方法,而是一个String。 我建议你做一个for循环来解决你的问题:

boolean match = false;
for (String s : matches){ 
    if (html.contains(s)){
        match = true;
        break;
    }
}

答案 2 :(得分:1)

if(html.contains(Bad[0]) || html.contains(Bad[1]) || html.contains(Bad[2])){