title_caseという関数を作ります。
第一引数に文章を、第二引数に前置詞を書きます。(第二引数は任意)
文章は全てcapitalizeしますが、第二引数に書かれた前置詞は小文字にします。
ただし先頭の前置詞はcapitalizeします。
それで、こんな感じに書いてみたのですが、なにか汚い気がして、、、
添削していただけたら嬉しいです。宜しくお願いします。
ruby
1def title_case(title, minor_words = " ") 2 array = cap(title) 3 first = array[0] 4 m = cap(minor_words) 5 array.drop(1).map{|x| m.any?{|x2| x === x2 } === true ? x.downcase : x = x}.unshift(first).join(" ") 6end 7def cap(array) 8 array.split(" ").map{|x| x.capitalize} 9end 10 11title_case('THE WIND IN THE WILLOWS', 'The In') 12=> "The Wind in the Willows"
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/01 14:54
2015/09/02 13:29