2017-03-23 6 views
0

は、この私はかなり簡単であるべきだと思うのURLの文字列に()が含まれていますが、私は初心者プログラマの一種だとどんな理由であれ、これは適切にのjava /アンドロイドは

WHAT I動作していません「Mは、私は、私がイメージならば、xとyの間のすべてのURLを取得ではなく、したいjsoup使用してウェブサイトをこすりしようとしている私は

をやっている

てる

をやろうとしています

私はxとyの間のすべてのURLを取得していますが、そのうちのいくつかは "https"を開始するかどうかをチェックする.contains()メソッドを使ってこれを実現しています。それらの画像リンクはpng jpgまたはgifで終わっていますが、pngやjpgなどがあるかどうかを確認するネストされたifブロックを追加したときにリストに追加しないと、まだリストに追加されています。

私が試したWHAT
  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タグから得できることを承知しているが、これは私がまたの部分文字列を取得しようとした、あまりにも多くの無関係なリンクになり最後の3つのチャーctersと私はそれがimgタグを持っているかどうかを確認するためにjsoup使用してみましたが、このhasntが働き、IVEはまた、ブール値を設定し、しようとする前にこれを確認するには、リンクのヘッダをチェックしてみました

    String sub = content.substring(content.length() - 3); 
        //and checking it in my if statement like 
        sub.equals("png") 

のようにそれらをチェックしますこの

URLConnection connection = new URL("http://foo.bar/w23afv") 
.openConnection(); 
String contentType = connection.getHeaderField("Content-Type"); 
boolean image = contentType.startsWith("image/"); 

のようなリストにリンクを追加するが、これは私が上に読んで解決しようとしましたが、私が見つけた最も簡単な方法は、「は、トラストマネージャを持っていないと私はドンするだろうSSLハンドシェイク・エラーを与えるしますそのアイデアのように、 私はこれで多くを検索したと私はそれが異なる文字を持つ文字列のケースかもしれないと思うし、明らかに私はarouを得ることができると思うRegexでそれを聞いてくださいが、私は初心者のようだと述べたように、私は理解するか、この任意の助けを解決するために苦労している?

+1

画像拡張機能の場合、 'contains(String)'の代わりに 'endsWith(String)'を使いたいかもしれません。 – Berger

+1

私はこれを試してくれてありがとう、しかし私は私の基本的なエラーを私はあなたがコメントのために今この感謝を使用してその理由のために働いていたおそらくwasntの基本的なエラーを作っていたとして – martinseal1987

答えて

2
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"); 
} 

contentpngが含まれていることを想像してください。最初はifの条件を満たしています。ポイントはさらに進んでいます。内容にjpgが含まれていないので、elseブロックが呼び出され、contentがLinkedListに追加されます。

ifelse ifに変更する必要があります。また、startsWith()endsWith()を使用することを検討してください。

+0

完璧な感覚はそんなにありがとう –

関連する問題