10.String Searching

文字列を検索する – indexOf/lastIndexOfメソッド

文字列に含まれる部分文字列を検索するには、indexOfメソッドを利用します。indexOfメソッドは、指定された部分文字列が最初に登場した位置を、文字列の先頭を0としたインデックス番号で返します。文字列が見つからなかった場合、戻り値は-1となります。
第2引数で、検索開始位置を指定することもできます。

1
2
3
String str = "にわにはにわにわとりがいる";
System.out.println(str.indexOf("にわ"));  // 結果:0
System.out.println(str.indexOf("にわ", 1));   // 結果:4

部分文字列を文字列の末尾から検索するならば、lastIndexOfメソッドを利用してください。

1
System.out.println(str.lastIndexOf("にわ"));  // 結果:6

match() 正規表現を使った検索

 正規表現を使って、文字列(String)を検索します。結果は文字列の配列として返されます。
【構文】
match(str, regexp)
【パラメータ】
str 検索対象の文字列
regexp 検索条件をあらわす正規表現
【戻り値】
String[] (一致する文字がないときはnull)

 次の例は文字列からデータを取り出します。

String t = "本日の気温は28度です";
String[] m = match(t, "([0-9]+)度");	// 「度」の前の数値を取り出す

if(m != null) {
  println("t=" + m[1]);				// 検索結果(m[1])を出力
  println(m[0]);						// 一致した文字全体(m[0])を出力
} else {
  println("不一致");
}

 

参考:

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


Related Post

5.Search5.Search

サーチ(Search)とは,複数のデータの中から特定のデータを見つけ出す作業のことです。日本語では探索や検索と呼びます。 サーチのアルゴリズムには,ランダムなデータを取り扱えるものと,ソート済みのデータを取り扱うものとがあります。 リストサーチ(list search) データのリスト構造とはA, B, C, ……のように,データが次々と連続している構造のことを言います。代表例は配列です。 そのようなリスト構造を持つデータの集合を探索するためのアルゴリズムを,ここではリストサーチと呼びます。 探索のアルゴリズム 線形探索 二分探索 ハッシュ法 線形探索 線形探索という言葉は英語のLinear Searchの直訳です。線形探索はリストの先頭から終端に向かって目的の要素を探し出すアルゴリズムです。 目的の要素であるという判定は比較によって行います。 アルゴリズム分析 リストの先頭から要素を取り出す 取り出した要素の値と探したい要素の値を比較する […]

2.Install Java env.2.Install Java env.

Javaのインストール MacBookでのJavaのインストール方法 http://java.com/ja/download/help/mac_install.xml MacにJavaをインストールするには、次の手順に従います。 jre-7u6-macosx-x64.dmgファイルをダウンロードします。ファイルをダウンロードする前に、使用許諾契約の内容を確認し、同意します。 .dmgファイルをダブルクリックして起動します パッケージ・アイコンをダブルクリックし、インストール・ウィザードを起動します 結果確認 chen-no-MacBook-Air:~ chen$ java -version java version “1.8.0_11” Java(TM) SE Runtime Environment (build […]

11.List11.List

List構造 コレクションクラス List構造は、要素を順番付けして管理するデータ構造です。 「ArrayList」「LinkedList」の2種類があります。 要素がインデックス(番号)順に並んでいるので、番号を指定して要素の取得、挿入、更新、削除ができます。また、Iteratorや拡張for構文を使って先頭から順番に要素を取得することも出来ます。 ArrayListは要素の取得が早いが挿入や削除が遅い、LinkedListは要素の挿入や削除は早いが取得が遅いという特徴があります。 List構造は、要素の重複は可能です。 リスト(ArrayList) ArrayList は配列を扱う一般的なクラスです。 下記などのメソッドが用意されています。 list.add(o) – オブジェクト o を配列の末尾に追加する list.add(n, o) – オブジェクトを […]