Ruby 文字列の位置を取得(index/rindex)

Rubyの文字列の位置を取得するサンプルです。

目次

サンプル 前から検索する(引数1つ)
  前から検索する+開始位置を指定(引数2つ)
  後から検索する(引数1つ)
  後から検索する+開始位置を指定(引数2つ)

前から検索する(引数1つ)

文字列.index(検索する文字)
  • 前から検索して引数に指定した文字列が出現した位置を返します。
  • 引数は、検索する文字列です。
  • 該当の文字がなかったときはnilを返します。
  • 最初の1文字目の位置は0です。

indexメソッドで前から検索するサンプルです。

str1 = "abcabc"
puts str1.index("a") # 0
puts str1.index("b") # 1
puts str1.index("c") # 2
puts str1.index("abc") # 0
puts str1.index("z") # nil

str2 = "あいうあいう"
puts str2.index("あ") # 0
puts str2.index("い") # 1
puts str2.index("う") # 2

2~5行目は、前から検索し引数の文字列が最初に見つかった位置を返しています。
6行目は、該当の文字がないのでnilが返ります。
8行目は、変数に日本語の文字列を代入しています。

前から検索する+開始位置を指定(引数2つ)

文字列.index(検索する文字,開始位置)
  • 1つ目の引数は、検索する文字列です。
  • 2つめの引数は、検索を開始する位置です。
str1 = "あいうあいう"
puts str1.index("あ", 0) # 0
puts str1.index("あ", 1) # 3
puts str1.index("あ", 2) # 3
puts str1.index("あ", 3) # 3
puts str1.index("あ", 4) # nil
puts str1.index("あ", 5) # nil

2行目の2つめの引数は0で対象の文字列は(あいうあいう)です。位置の0が返ります。
3行目の2つめの引数は1で対象の文字列は(いうあいう)です。位置の3が返ります。
4行目の2つめの引数は2で対象の文字列は(うあいう)です。位置の3が返ります。
5行目の2つめの引数は3で対象の文字列は(あいう)です。位置の3が返ります。
6行目の2つめの引数は4で対象の文字列は(いう)です。文字(あ)はないのでnilです。
7行目の2つめの引数は5で対象の文字列は(う)です。文字(あ)はないのでnilです。

後から検索する(引数1つ)

文字列.rindex(検索する文字)
  • 後ろから検索して引数に指定した文字列が出現した位置を返します。
  • 1つ目の引数は、検索する文字列です。
  • 該当の文字がなかったときはnilを返します。
  • 最初の1文字目の位置は0です

rindexメソッドで後から検索するサンプルです。

str1 = "abcabc"
puts str1.rindex("a") # 3
puts str1.rindex("b") # 4
puts str1.rindex("c") # 5
puts str1.rindex("abc") # 3
puts str1.rindex("z") # nil

str2 = "あいうあいう"
puts str2.rindex("あ") # 3
puts str2.rindex("い") # 4
puts str2.rindex("う") # 5

2~5行目は、後ろから検索し引数の文字列が最初に見つかった位置を返しています。
6行目は、該当の文字がないので-1が返ります。
8行目は、変数に日本語の文字列を代入しています。

後から検索する+開始位置を指定(引数2つ)

文字列.rindex(検索する文字,開始位置)
  • 1つ目の引数は、検索する文字列です。
  • 2つめの引数は、検索を開始する位置です。

rindexメソッドで、検索開始位置を指定するサンプルです。

str1 = "あいうあいう"
puts str1.rindex("あ", 5) # 3
puts str1.rindex("あ", 4) # 3
puts str1.rindex("あ", 3) # 3
puts str1.rindex("あ", 2) # 0
puts str1.rindex("あ", 1) # 0
puts str1.rindex("あ", 0) # 0

2行目の引数は5で対象の文字列は(あいうあいう)です。位置の3が返ります。
3行目の引数は4で対象の文字列は(あいうあい)です。位置の3が返ります。
4行目の引数は3で対象の文字列は(あいうあ)です。位置の3が返ります。
5行目の引数は2で対象の文字列は(あいう)です。位置の0が返ります。
6行目の引数は1で対象の文字列は(あい)です。位置の0が返ります。
7行目の引数は0で対象の文字列は(あ)です。位置の0が返ります。

関連の記事

Ruby if文のサンプル
Ruby for文 処理を繰り返す(break/continue)

△上に戻る