0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】小文字から大文字、大文字から小文字に変換する方法

Posted at

概要

Railsチュートリアルで downcase メソッドを使用しました。使う機会が今までなかったので、今回問題を解きながら理解を深めたいと思います。関連メソッドについても簡単に見ていきたいと思います。

目次

  • 関連メソッド

  • 下記問題で使用するメソッド

    • start_with?
    • end_with?
  • 実践

    • 問題
    • 解答
    • 別解
  • まとめ

  • 参考文献

関連メソッド

メソッド 使い方
downcase 大文字を小文字に変換
upcase 小文字を大文字に変換
swapcase 大文字を小文字に、小文字を大文字に変換
capitalize 先頭の小文字を大文字に変換
破壊的メソッド(!) 上記のメソッドの末尾に ( ! ) を付与するとオブジェクトに変更を加える

下記問題で使用するメソッド

start_with?

指定の文字列で始まっているか調べるメソッド

end_with?

指定の文字列で終わっているか調べるメソッド

実践

問題

任意の2つの文字列があります。文字列同士を比べ、文字列の最後にもう一方の文字列が含まれているか確認するプログラムを書いてください。

解答

小文字と大文字で区別を付けたくないので downcase を使用しています。upcase メソッドを使いすべて大文字にしても問題なく動作します。

def end_other(a, b)

  # 小文字に変換し変数に格納
  a_down = a.downcase 
  b_down = b.downcase

  # aの文字列の中にbの文字列は入ってる? または、 bの文字列の中にaの文字列は入ってる?
  if a_down.end_with?(b_down) || b_down.end_with?(a_down)
    p 'True'
  else
    p 'False'
  end
end

# メソッド呼び出し
end_other('Apple', 'Ple')
end_other('orange', 'Range')
end_other('banana', 'Nana')

別解

slice を使用することで引数で指定した箇所を切り取っています。
sliceについてはこちらを参考にしていただければ幸いです。

def end_other(a, b)

  # 小文字に変換し変数に格納
  a_down = a.downcase
  b_down = b.downcase

  # 文字列の長さを取得
  a_len = a_down.length
  b_len = b_down.length

  # bの文字列からaの文字列分の文字を切り取り、aの文字列と等しい? または、 aの文字列からbの文字列分の文字を切り取り、aの文字列と等しい?
  if b_down.slice(-(a_len)..-1) == a_down || a_down.slice(-(b_len)..-1) == b_down
    p 'True'
  else
    p 'False'
  end
end

# メソッド呼び出し
end_other('Apple', 'Ple')
end_other('orange', 'Range')
end_other('banana', 'Nana')

まとめ

  • Rubyが用意してくれているメソッドを使うことで簡単に小文字から大文字に変換、大文字から小文字に変換などをすることができる。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?