こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 Rubyの指定した文字列を検索して最初に出現するインデックスを返すindexメソッドについて
- indexメソッドとは
- indexメソッドを使ったサンプルプログラム
と、この記事で丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
Rubyのインストールは、下の記事をご参考ください。
indexメソッドとは
indexメソッドとは、引数に指定された文字列を左端から右に向かって検索して最初に出現するインデックスを返すメソッドです。
もし文字列が見つからなければ、nilを返します。
インデックスは0から始まります。
indexメソッドは
- 検索するインデックス指定なし
- 検索するインデックス指定あり
の合計2パターンの使い方があります。
それぞれ解説します。
パターン1:検索するインデックス指定なし
検索するインデックス指定がない場合は、引数に指定された文字列を左端から検索して最初に出現するインデックスを返します。
使い方サンプルは、以下になります。
1 2 |
sample = "abcd" result = sample.index("bc") |
上記の例だと、変数resultには1が返されます。
パターン2:検索するインデックス指定あり
検索するインデックス指定がある場合は、検索は指定したインデックスから開始して引数に指定された文字列を検索して最初に出現するインデックスを返します。
指定したインデックスが正の数だと先頭から、負の数だと末尾から数えたインデックスから検索をします。
使い方サンプルは、以下になります。
1 2 |
sample = "abcdabcd" result = sample.index("bc", 3) |
上記の例だと、変数resultには5が返されます。
では、次の章で実際に使ってみます。
indexメソッドを解説するプログラムの概要
indexメソッドを解説するプログラムでは、
- 検索するインデックス指定なし
- 検索するインデックス指定あり
の2パターンでindexメソッドを使い、指定した文字列が何番目にあるのかを表示させて確認します。
Rubyサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
puts "■indexメソッドサンプル" puts puts "・パターン1:検索するインデックス指定なし" search_str = "hogehoge" search_word = "ge" result = search_str.index(search_word) puts "#{search_word}は#{search_str}の#{result}番目にあります" search_word_not = "aaa" result_not = search_str.index(search_word_not) puts "#{search_word_not}は#{search_str}の#{result_not}番目にあります" puts puts "パターン2:検索するインデックス指定あり" search_str2 = "foobarfoobar" search_word21 = "foo" result21 = search_str2.index(search_word21, 3) puts "3番目以降に#{search_word21}は#{search_str2}の#{result21}番目にあります" search_word22 = "bar" result22 = search_str2.index(search_word22, -6) puts "-6番目以降に#{search_word22}は#{search_str2}の#{result22}番目にあります" search_word_not2 = "foo" result_not2 = search_str2.index(search_word_not2, -3) puts "-3番目以降に#{search_word_not2}は#{search_str2}の#{result_not2}番目にあります" |
実行結果
実行して本当に判定できているかを確認します。
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
1 2 3 4 5 6 7 8 9 10 |
■indexメソッドサンプル ・パターン1:検索するインデックス指定なし geはhogehogeの2番目にあります aaaはhogehogeの番目にあります パターン2:検索するインデックス指定あり 3番目以降にfooはfoobarfoobarの6番目にあります -6番目以降にbarはfoobarfoobarの9番目にあります -3番目以降にfooはfoobarfoobarの番目にあります |
呼び出している文字列から指定した文字をindexメソッドで検索できていることが確認できました。
まとめ:indexメソッドを使ってみよう!
以上がindexメソッドについての解説でした。
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント