【初心者向け】Rubyプログラミングで文字列の一致を判定する方法

プログラム

プログラミングを進めていると様々な形式のデータを扱います。
ユーザのログイン情報や、個人情報、ログデータ等、情報は多岐にわたります。
その中で、ユーザから入力された情報は文字列の型で表現されることが多いです。
例えば、氏名や住所、ログインID等です。
他にもユーザ入力が多いシステムやプログラムであれば、文字列の情報は莫大になるでしょう。
今回は、そうした文字列のデータが一致しているか判定する方法を紹介していきます。

完全一致

まずは、文字列の完全一致を判定する方法について紹介していきます。

eql?関数

まずは、eql?関数です。
これはRubyの組み込み関数で、使い方は以下の通り簡単です。

“変数.eql?(比較したい文字列)”

文字列が完全に一致していればtrue、間違っていればfalseを返してくれます。
それでは実際にプログラムを書いてみましょう。

eql.rb
str1 = 'abc'
puts str1.eql?('abc')
‏str2 = 'def'
puts str2.eql?('abc')

実行してみましょう。

$ruby eql.rb
true
false

この方法は非常にシンプルで、使いやすい関数だと思います。
“eql?”という短い記述で、プログラムをシンプルに見せてくれます。
また、より詳しく知りたい方は、以下の公式ドキュメントを読んでみて下さいね。
instance method String#eql?

“==“演算子

次に”==“演算子による判定です。
これは他のプログラミング言語でも使われる一般的に記述です。
使い方は以下の通りです。

”変数1 == 変数2”

それでは実際にプログラムを書いてみましょう。

equal_id.rb
str = 'abc'
puts str == 'abc'
puts str == 'def'

実行してみましょう。

$ruby equal_id.rb
true
false

‘==‘の様な演算子は、他の方法での判定も可能です。
例えば、完全一致しない判定は、”!=“と記述します。
演算子を使った判定方法については、以下の公式ドキュメントをご参考下さい。
演算子式
また、‘==‘の演算子はif文で判定する時に頻繁に使われます。
rubyのif文については、以下の公式ドキュメントをご参考下さい。
制御構造

部分一致

続いて、文字列が部分的に一致しているか判定する方法を紹介します。

include?関数

まずは、include関数です。
この関数は指定する文字列が含まれていればtrue、含まれていなければfalseを返します。
それでは実際にプログラムを書いてみましょう。

include.rb
str = 'abcde'
puts str.include? 'bcd'
puts str.include? 'fgh'
puts str.include? 'abcde'

実行してみましょう。

$ruby include.rb
true
false
true

完全一致の場合も含めて確認しましたが、きちんとtrueを返してくれています。
部分一致だけでなく完全一致の場合も判定してくれます。
include?関数について、より詳しく知りたい方は以下の公式ドキュメントを参考にして下さい。
instance method String#include?

start_with?関数とend_with?関数

続いて、start_with?関数とend_with?関数について紹介します。
この2つの関数は使い方が似ているため、同時に紹介していきます。
start_with?関数は、指定した文字列が最初の部分に含まれているか判定します。
end_with関数は、指定した文字列が最後の部分に含まれているか判定します。
それでは実際にコードを書いてみましょう。

start_end_with.rb
str = 'abcde'
puts str.start_with?('abc')
puts str.start_with?('bcd')
puts str.end_with?('cde')
puts str.end_with?('bcd')

実行してみましょう。

$ruby start_end_with.rb
true
false
true
false

文字列の最初と最後の部分一致が判定できました。
文字列の規則性を使った判定がしたい時に活用できる関数ですね。
より詳しく知りたい方は以下の公式ドキュメントを参考にして下さいね。
instance method String#start_with?
instance method String#end_with?

まとめ

今回はRubyで文字列の一致を判定する方法を紹介しました。

完全一致:eql?関数、‘==‘演算子
部分一致:include関数、start_with関数、end_with関数

文字列判定を行う上で便利な関数がRubyには揃っているので、色んなことを試すことができますね。
それぞれ自分のプログラムに合わせて柔軟に組み込めるものばかりです。
また、Rubyプログラミングで数値を判定する方法を以下のリンク先に紹介しています。
是非、参考にしてみて下さい。

自分のコードに組み込んで色々試してみて下さいね。