文字列を検索する – 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("不一致"); }
参考: