問題
任意の文字列が “xyz”を含み、xyzの前にピリオド(.)が続かない場合はTrueを出力します。
したがって、 “xxyz”はカウントされますが、 “x.xyz”はカウントされません。
自分の回答
def xyz_there(srt)
if srt.include?(".xyz")
puts "False"
elsif srt.include?("xyz")
puts "True"
else
puts "False"
end
end
注意する点は、先に”.xyz”を含むかどうかを確認しているところです。ifとelsifの条件の順番を逆にすると、ピリオドを含む場合も”True”と出力してしまいます。なので、先にピリオドが入っているときの条件を確認しましょう。
Rails上ではexclude?メソッドを使えますが、rubyでは使えないので気をつけましょう。