Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java/android如何在url字符串上使用contains()_Java_Android_Url_Jsoup_Contains - Fatal编程技术网

java/android如何在url字符串上使用contains()

java/android如何在url字符串上使用contains(),java,android,url,jsoup,contains,Java,Android,Url,Jsoup,Contains,我认为这应该是相当简单的,但我是一个新手程序员,无论出于什么原因,这都不能正常工作 我想做的事 我正在尝试使用jsoup抓取一个网站,我想获取x和y之间的所有URL,但如果有图像 我在做什么 我正在获取x和y之间的所有URL,但其中一些是图像,我正在使用.contains()方法检查它是否启动“https”这可以得到我想要的所有链接,但很多都是以png jpg或gif结尾的图像链接,但是当我添加嵌套if块以检查它是否是png或jpg等,如果是,则不将其添加到列表中时,它们仍然被添加到我的列表中

我认为这应该是相当简单的,但我是一个新手程序员,无论出于什么原因,这都不能正常工作

我想做的事

我正在尝试使用jsoup抓取一个网站,我想获取x和y之间的所有URL,但如果有图像

我在做什么

我正在获取x和y之间的所有URL,但其中一些是图像,我正在使用.contains()方法检查它是否启动“https”这可以得到我想要的所有链接,但很多都是以png jpg或gif结尾的图像链接,但是当我添加嵌套if块以检查它是否是png或jpg等,如果是,则不将其添加到列表中时,它们仍然被添加到我的列表中

            Elements metaElems = doc.select("meta");

            for (Element metaElem : metaElems) {
                     String content = metaElem.attr("content");
                        if (content.contains("https")){

                            if (content.contains("png")){
                                buffer.append("PNG");
                            }
                            if (content.contains("gif")){
                                buffer.append("GIF");
                            }
                            if (content.contains("jpg")){
                                buffer.append("JPG");
                            }
                            else {
                                linklist.add(content + "\r\n");
                            }
                        }
                }
我尝试过的

我知道所有的URL都可以从href标签中获得,但这会导致太多不相关的链接。我也尝试过获取最后三个字符的子字符串,并对它们进行类似的检查

                    String sub = content.substring(content.length() - 3);
                    //and checking it in my if statement like
                    sub.equals("png")
我曾尝试使用jsoup检查它是否有img标记,但这不起作用,我还尝试检查链接的标题以设置布尔值,并在尝试将链接添加到列表之前进行检查,如下图所示

URLConnection connection = new URL("http://foo.bar/w23afv")
.openConnection();
String contentType = connection.getHeaderField("Content-Type");
boolean image = contentType.startsWith("image/");
但这给了我一个SSL握手错误,我仔细阅读并试图解决,但我发现最简单的方法是没有信任管理器,我不喜欢这个想法, 我在这方面搜索了很多,我认为这可能是字符串具有不同字符的情况,显然我可以用正则表达式解决它,但如上所述,我是一个初学者,我正在努力理解或解决这个问题。有什么帮助吗?

if(content.contains(“png”)){
buffer.append(“PNG”);
}
if(content.contains(“gif”)){
buffer.append(“GIF”);
}
if(content.contains(“jpg”)){
buffer.append(“JPG”);
}
否则{
链接列表。添加(内容+“\r\n”);
}
现在想象一下
内容
包含
png
。首先
如果
条件满足,则为ok。关键是它走得更远。内容不包含
jpg
,因此将调用
else
块,并将
内容添加到LinkedList中

您需要做的是将第二个和第三个
if
更改为
else if
。还可以考虑使用<代码> StastSub()/<代码>和<代码> EnthSub()/<代码> < /P> <代码> IF(内容)包含(“PNG”){ buffer.append(“PNG”); } if(content.contains(“gif”)){ buffer.append(“GIF”); } if(content.contains(“jpg”)){ buffer.append(“JPG”); } 否则{ 链接列表。添加(内容+“\r\n”); }
现在想象一下
内容
包含
png
。首先
如果
条件满足,则为ok。关键是它走得更远。内容不包含
jpg
,因此将调用
else
块,并将
内容添加到LinkedList中


您需要做的是将第二个和第三个
if
更改为
else if
。还可以考虑使用<代码> StastSub()/<代码>和<代码> EnthSub()/<代码> ./P>图像扩展,您可能希望使用<代码> EnthsOf(String)< /C> >而不是<代码>包含(String)
。谢谢。我尝试过这个方法,但由于我在if-else语句中犯了基本错误,因此可能无法正常工作,因此我现在将使用它。感谢图像扩展的注释,您可能希望使用
endsWith(String)
而不是
contains(String)
。谢谢,我已经试过了,但是因为我在if-else语句中犯了基本错误,所以可能因为这个原因它不起作用,所以我现在就用这个,谢谢你的评论