- ベストアンサー
URLでプログラムを操作させるか判別させたい
- URLでプログラムを操作させるか判別させたい場合、__mode=rssに対応しているブログのURLかどうかを判定する必要があります。
- URLの中に特定の文字列(例:blog.livedoor、jpyaplog.jp、cocolog-nifty.comなど)が含まれていれば、__mode=rssに対応しているブログのURLと判断し、プログラムを実行させます。
- それ以外の場合は、リンクを抽出させるプログラムは実行せず、別の処理を行うようにします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
urlの中に指定した文字列が含まれているかテストするサンプル public class Sample { public static void main(String[]args){ String url = "http://blog.livedoor.jp/everyone/"; if(url.matches(".*(blog\\.livedoor|yaplog\\.jp|cocolog-nifty\\.com|blogso-net\\.ne\\.jp).*")){ System.out.println("マッチした"); } else { System.out.println("マッチしない"); } } }
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
indexOfを使えば、文字列の中に指定した文字列が含まれているかどうかを調べることができます。 また、正規表現を使ってマッチする部分があるかどうかでも調べることができます。 この場合で言えば、実際のURLにアクセスするので能率はよろしくないですが、 <response><error>1</error>~</response> とかerror要素が0でないというのが帰ってくるのであればそれを使うのも可能かと思います。
お礼
ご回答ありがとうございます。 正規表現を使う場合はどのようにプログラムを記述すればよいでしょうか? また、URLの判別を複数でできるのでしょうか? 例えば、String urlに "blog.livedoor" "yaplog.jp" "cocolog-nifty.com" "blogso-net.ne.jp" が含まれていたら、 __mode=rssでURLを抽出させるプログラムの DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = dbfactory.newDocumentBuilder(); Document doc = builder.parse(url); 以降の操作をさせて、条件に一致しない場合は別の操作をさせるようにするには、 どのようにすればいいでしょうか? よろしくお願いします。
お礼
ご回答ありがとうございました。