1. ホーム
  2. ruby

[解決済み] Ruby: 文字列の最初の文字を取得する方法

2022-05-13 11:43:53

質問

Rubyを使って文字列の最初の文字を取得するにはどうしたらよいですか?

最終的に私がやっていることは、誰かの姓をとって、そこから頭文字を作るだけです。

ですから、もし文字列が "Smith" だったとしたら、私はただ "S" が欲しいだけなのです。

どのように解決するのですか?

Rubyのオープンクラスを使って、コードをより読みやすくすることができます。 例えば、こんな感じ。

class String
  def initial
    self[0,1]
  end
end

を使うと initial メソッドを任意の文字列に対して使用できるようになります。 つまり、以下のような変数があった場合。

last_name = "Smith"
first_name = "John"

そうすると、非常にきれいに、読みやすくイニシャルを取得することができます。

puts first_name.initial   # prints J
puts last_name.initial    # prints S

ここで言及されている他の方法は、Ruby 1.8では動作しません (とにかくもう 1.8 を使う必要はありません。-しかし、この回答が投稿されたときは、まだかなり一般的でした)。

puts 'Smith'[0]           # prints 83

もちろん、普段からやっていないのであれば、メソッドを定義するのはやりすぎで、直接やればいいのかもしれません。

puts last_name[0,1]