• ベストアンサー

特定の文字列を抜き出す。

javaでrdfファイルへのURLを抜き出そうと思っています。 具体的にはhttp:からindex.rdfという文字列を 抜き出したいのですが、 String型のlineという変数に a.(http:*************index.rdf)だけ含まれている文字列と b(http:*********foaf.rdf ***************** http:***************index.rdf) のような含まれ方をしている文字列があります。 aの場合はsubstringメソッドを使って httpの現れる場所からindex.rdfが現れる場所をindexOfメソッドで求めて抜き出せばよいのですが、 bの場合最初のhttpから最後のindex.rdfまで読み出されます。 index.rdfのついたhttpから文字列を抜き出す方法は ないでしょうか?お願いします。

  • Java
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

簡単なことです。 まず始めに "index.rdf" の場所を indexOf メソッドで求め、次に "index.rdf" より前で最後にある "http:" の位置を lastIndexOf メソッドで探します。 あとは substring メソッドで抜き出すだけですね。

Judau_MSZ-010
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

試してないけど以下の様にしてできると思います。 import java.util.regex.Matcher; import java.util.regex.Pattern; Pattern pattern = Pattern.compile("http:.*?index.rdf"); Matcher matcher = pattern.matcher(line); url = matcher.group();

Judau_MSZ-010
質問者

お礼

ありがとうございます!

関連するQ&A

  • 一行に特定の文字列がいくつあるかを調べたい。

    のですが、悩んでいます。 String型に入っている文字列の中に 例えば"日本"という文字列が何個入っているかを しらべたいのですが、Stringクラスのメソッド をみたのですが、indexOfくらいしか思いつきません。 しかしindexOfでは、その文字列が格納してある 場所を返すだけなので、できません。 何か良い方法はないでしょうか?

    • ベストアンサー
    • Java
  • 文字列を特定文字で分割したい

    はじめまして。宜しくお願いします。 現在Access2002のVBAをつかってタイトルのようなことを実現したいと思っています。 Dim a As String Dim b As String という二つの変数を用意して 「C:\Documents and Settings\デスクトップ\test.csv」という文字列が与えられているとき 変数aには「test.csv」を、変数bには「C:\Documents and Settings\デスクトップ\」を 格納しようとしています。 スマートなやり方がわからず、 文字列の右から一文字ずつ比較して行き、何文字目に「¥」が出てくるかをカウントして、right関数とleft関数で分割を行っています。 このような処理を行う場合、なにか適した関数があると思い探しているのですが、 なかなか見つからず、行き詰っています。(そのような関数があるのかも分からず・・) もしもなにかお気づきの方が居られましたら、ご教授宜しくお願いします。

  • 変数に入れた文字列をindexOfで解釈したい

    すみません、質問したいと思います。 自身のURLを参照して、それを変数に格納し、その文字列中にある #の位置をindex.Ofで解釈したいと思います。 なので、以下のようなjavaScriptを書いたのですが、うまくいきません。 なぜでしょう、よければ教えてください。 <script language=javascript> var loc = this.window.location; var sharp_pos = loc.indexOf("#");//#がなければ-1を返す document.write(loc); </script> 以上のものを実行したら、URL中の#の位置がブラウザ上で数字で 確認できると思ってたのですが・・・。 javascriptって、変数に格納した文字列は解釈できないのでしたっけ? perlだったら出来てたような気がしますが・・。 本を見たら、直接文字列をいじっているサンプルしかありませんでした。  "abcde".indexOf("c"); ⇒2を返す よろしくお願いします。

  • 文字列の指定した範囲を抽出する方法

    こんにちは ver_51 と言います、今文字列の抽出法で悩んでいます。 基本的なことでお恥ずかしいのですが、Javaではいい方法が全く思いつかなかったので、質問をさせていただきました。 例えば String a = "<a href="http://www.yahoo.co.jp/">Yahoo! JAPAN</a>"; String b = ""; のような文字列があるとすると、文字列 a から http://www.yahoo.co.jp/ だけを取り出したい場合 int i; for(i=10;i<=32;i++){ b += a.charAt(i); } で b の中身は http://www.yahoo.co.jp/ となりますが、どうも原始的でかっこ悪いです。 仮に http://www.yahoo.co.jp/.* のようにURLに続きがある場合、数字(ここでいう32)をいちいち変える必要があり、応用もききません。 文字列 a から指定した範囲だけを抽出する良い方法はないでしょうか? ご質問は遠慮なくして下さい。 宜しくお願いします。

    • ベストアンサー
    • Java
  • [JAVA]evalで文字列を計算式に!

    こんにちわぁ♪ Javascriptに「eval」というコマンドがあると思います。 これは、文字列を計算式として変換するものです。 例えば String SHIKI = "A + B" という文字列があり、evalを使ってやると その時点で文字列ではなくなり、 普通に、 A=3; B=4; String C = eval(SHIKI); と計算式にすることができます(使い方がちがうかもしれませんが)。 しかし、JAVAスクリプトではあるこのコマンドが JAVAでは見つかりません。 これと同等のコマンド、JAVAにありますか?

    • ベストアンサー
    • Java
  • 文字列から特定の文字を抜き出す

    こんにちは。 シェルスクリプトで文字列から特定の文字を抜き出し、 変数に入れたいのですが、うまくいきません。 申し訳ありませんが、アドバイスをお願いいたします。 文字列 $moji=aaa_bbb_ccc (文字は変動します) $a=aaa $b=bbb $c=ccc と"_"毎に変数に代入したい。 echo $moji | awk -F_ '{print $2}' で文字を標準出力に取り出すことはできるのですが、 そこから変数に代入する方法がいまいち分かりません。

  • 文字列の取得

    string.subString()のなどで文字列を指定文字数分取得する場合に、バイト数指定で取得する方法ってありますか? 教えてください。

    • ベストアンサー
    • Java
  • String型の変数に代入されている2つの文字列を論理演算したいです。

    String型の変数に代入されている2つの文字列を論理演算したいです。 上記の通りなんですけど 例えば String a = "あいうえお"; String b = "aiueo"; このような二つの文字列を論理演算したあと 16進数の文字列としてあらたな変数(String型)に代入したいのですが どのように記述すればよろしいでしょうか? 初心者なものでわかりやすく説明していただけるとありがたいです。

    • ベストアンサー
    • Java
  • 半角カナの文字列操作について

    通常10桁の半角カナの文字列があった場合下記のように String i = "イイイイイイイイイイ"; i.substring(0,5) + ","+i.substring(5,10) Systemout.println(i); として結果を イイイイイ イイイイイと文字列を分割しているのですが 10桁の文字列を半分に区切ろうとした場合 6文字目に濁点が存在した場合 String i = "イイイイバイバイ"; i.substring(0,5) + ","+i.substring(5,10) 結果が イイイイハ ゛イバイ と バの濁点とハが分割されてしまいます。 この半角カタカナの文字列でこの現象を 回避するために 文字列の中で濁点がヒットした場合 文字列の濁点を含んだ文字列の前か後ろで イイイイ ハ゛イバイ もしくは イイイイハ゛ イバイ のように 分割させたいのですがなにか良い方法はありませんでしょうか?? どうぞよろしくお願いします。

    • ベストアンサー
    • Java
  • 文字列の動的な結合

    C♯、.net frameworkdは2.0の環境です。 メソッドでSQL用の文字列を作っています。 引数によって、JOINするテーブルを変えたいのですが、StringBuilderではなく、 単なるStringの変数を、ひたすら + で結合している状態なので、悩んでいます。 String sql; sql = " select " + " tbl.column1 " + " from " + … こんな感じです。 StringBuilderで作り直したいのですが、諸事情により難しいので、+での文字列結合をしつつ、 ところどころ、引数を見て文字列を結合したりしなかったり…ということをスムーズにできる 方法はないでしょうか?

専門家に質問してみよう