• ベストアンサー

文字列の検索

教えてください。 例えば、「今日は、良い天気です。」と言う文字列が あったとします。 その文字列のなかに、「天気」と言う言葉が含まれて いるかどうかのチェックをしたいのですが、どのように すれば、よいでしょうか? がんばって考えてみたのですが、Stringクラスの indexOf(\"天気\")のようにして、マイナス(-1)が 返ってくれば、天気と言う文字が含まれていると 言うやり方でいいのでしょうか? あってるのかどうか、わからなくて困ってます。 他のやり方でされてる方がいらっしゃれば、ご教示 ください。お願いします。

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

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

  • ベストアンサー
noname#6248
noname#6248
回答No.1

// これで特に問題ないと思いますが… public class test{  public static void main(String[] args){   String str="今日は、良い天気です。";   if(str.indexOf("天気") != 0){    System.out.println("天気と言う文字を見つけたよ");   }  } }

参考URL:
http://java.sun.com/products/jdk/1.2/ja/docs/ja/api/
HELPMAN
質問者

補足

ありがとうございます。 参考URLで確認しました。 さらに質問となってしまいますが、 検索したい文字列が無い場合は、「-1」が返ってくる みたいなので、 if(str.indexOf("天気")!= -1){ System.out.println("天気と言う文字を見つけたよ"); } で、よいでしょうか?

その他の回答 (2)

  • yuji
  • ベストアンサー率37% (64/169)
回答No.3

では、他のやり方で... 単純な文字列検索だけならよいのですが、 複雑な場合には、jakarta-oro-2.0.x.jarのライブラリを 使っています。 Perlと同じような感覚で使えるので便利です。 ただし、遅いかもしれません。 複雑なパターンがない場合には不要でしょう。

参考URL:
http://jakarta.apache.org/oro/index.html
HELPMAN
質問者

お礼

ありがとうございます。 そんなライブラリがあるのは、始めて知りました。 勉強になりました。

noname#30871
noname#30871
回答No.2

>if(str.indexOf("天気")!= -1){ >System.out.println("天気と言う文字を見つけたよ"); >} >で、よいでしょうか?  そのとおりです。  このような場合、あれこれ悩むよりもAPIドキュメントを確認しましょう。参考URLからダウンロードできます。

参考URL:
http://java.sun.com/j2se/1.3/ja/docs.html
HELPMAN
質問者

お礼

ありがとうございます。 勉強になりました。

関連するQ&A

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

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

    • ベストアンサー
    • Java
  • 文字列を取り出す。

    文字列で一行の中に ********* ******** *********** ********* のように間に空白の入っている文字列が あるのですが、 これの2番目をとってくるようにしたのですが、 良い方法が思い浮かびません。 Stringクラスのメソッドを見ているのですが、、、 お願いします。

    • ベストアンサー
    • Java
  • 配列内の文字列検索をしたい

    お世話になっております、またjavascriptで詰まってしました。現在作ってるソースは以下のイメージです。 var temp= hensuu; var list = "aa,bb,cc"; //tempがaa,bb,ccの文字を含んでいたら処理 if(list.indexOf(temp)!=-1){ //ここで何番目の要素か知りたい } という処理をしているのですがif(list.indexOf(temp)!=-1)の中で「文字列(list)に存在する」だけでなく,「区切りの何番目の要素か」も知りたいんですがそういう便利な関数か方法はあるでしょうか? list.indexOf(temp)の返す値は「文字列が見つかった場所」なのでリストの順番ではないんですよね…。 for文でひとつひとつ回すしか方法は無いのでしょうか??LIST(もしくは配列)内検索関数みたいなのがあればナイスなんですが…。分かる方、ご教授頂けたらこれ幸いです。

  • C#でのワイルドカードを使った文字検索

    開発初心者です。 文字検索をワイルドカードを使って行いたいと考えています。 例えば、 string x = "ABCDEFGHI" という文字列があったとして 「C***G」という文字列(***はワイルドカード)を検索したいとき、 x.IndexOf(C***G)=2のような結果を出力できるような検索方法を探しています。 ご存知の方がいれば、ご教授宜しくお願いします。

  • 文字列の検索について

    RichTextBoxの文字列の中の太字にした文字列や、斜体にした文字列などを検索したいのですが、InStrでできますか? もしくは他にやり方があったら教えてください。お願いします。ちなみにVB6.0です。

  • 複数文字列から共通文字列の抽出処置

    お世話になっています。 標題の件に付いて教えて頂きたく質問板に投稿させて頂きました。 以下の様な複数の文字列があり各文字列で共通の文字列のみを抽出するといった処理を行いたいのですが可能でしょうか?? 例(1) 赤鉛筆を11/1に購入 青鉛筆を11/5に購入 黄鉛筆を11/20に購入 →鉛筆を購入 例(2) 今日の天気は晴れです 今日の天気は曇りです 今日の天気は雨です →今日の天気はです という様な感じです。 文字列には決まったパターン等はありません。 申し訳ありませんがご教授下さい。 よろしくお願い致します。

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

    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
  • 使用禁止文字の検索について

    たびたびすみません。 文字列の中に使用禁止文字がないかチェックしたいのですが悩んでおります。 "}"が文字列に含まれていないかをチェックするとおかしな事が起こります。 チェックにはstrpos関数を使っています。 例えば、 $res = strpos("パクス・ロマーナ", "}"); print("パクス・ロマーナ結果".$res); とすると 本来ならば結果は false が返るはずなのですが、 「パクス・ロマーナ結果11」となってしまいます。 タブ区切りのcsvファイルの中の文字列をチェックしているのですが それが原因なのでしょうか? 他の文字("'"や"{")については何も問題がないのです。 どなたかご教示していただけますと助かります。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 文字列の検索

    ある文字列の中から、たとえば@1234のように @の後に数字が4桁連続している文字列を探す構文を matchを使って記述したいのですが、 matchの引数をどのように指定すればいいのかわかりません。 [0-9]やd\と{4}をいろいろ組み合わせてはみたんですが、 どうしてもうまくいきません。 matchでなくても他に良い方法があればおしえてください。

  • javaの文字列検索について

    javaの文字列検索について教えて頂きたいです。 例で説明します。 String a = "a bc dd ef"; String b = "abcd"; String c = "xxx"; 上記のよう、aは空白がはいている文字列です。 bの内容をaの中に存在しているか(空白無視)を検索して、存在している場合はあたりの部分をcに置換する処理を作りたいです。 上記の例の場合、期待の結果は"xxxd ef"になります。 空白無視して検索、置換する方法が分からないので、教えて頂いてよろしいですか?

    • ベストアンサー
    • Java