1

「背中の銀のライダーと椰子の木」という長い紐を持っています。文中の「on」「the」「and」以外はすべて大文字にするRubyメソッドを書きたいのですが、先頭の「the」は大文字ですか?

これが私がこれまでに持っているものです:

def title(word)
  small_words = %w[on the and]
  word.split(' ').map  do |w|
    unless small_words.include?(w)
      w.capitalize
    else
      w
    end
  end.join(' ')
end

このコードは実際に必要なことのほとんどを実行しますが、文頭の「the」を含めたり除外したりする方法がわかりません。

4

4 に答える 4

3

これにより、文の最初ではないストップ ワード (小さな単語) を除いて、すべての単語が大文字になります。

def title(sentence)
  stop_words = %w{a an and the or for of nor} #there is no such thing as a definite list of stop words, so you may edit it according to your needs.
  sentence.split.each_with_index.map{|word, index| stop_words.include?(word) && index > 0 ? word : word.capitalize }.join(" ")
end
于 2013-07-13T23:30:30.507 に答える