[Ruby]dorill72

プログラミング

問題

任意の文字列が “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では使えないので気をつけましょう。

タイトルとURLをコピーしました