def titleize(string)
string.split(" ").map {|word| word.capitalize}.join(" ")
end
To tytułuje każde pojedyncze słowo, ale w jaki sposób przechwycić niektóre słowa, które nie powinny być pisane wielką literą?Ruby: Titleize: Jak zignorować mniejsze słowa, takie jak "i", "the", "lub, itp.
ie) Jack i Jill
I proszę nie używać Regex.
UPDATE:
Mam problemy podejmowania tej pracy Kod: mam go wydrukować tablicę słowy wszystkie czapki, ale nie bez listy poniżej.
words_no_cap = ["and", "or", "the", "over", "to", "the", "a", "but"]
def titleize(string)
cap_word = string.split(" ").map {|word| word.capitalize}
cap_word.include?(words_no_cap)
end
utworzyć tzw listę "stop-słowo", zawierające słowa, których nie chcesz przetwarzać. Może to być tablica, zestaw, hasz lub wyrażenie regularne. Regex jest popularnym sposobem radzenia sobie z problemem, jak jest hash, ponieważ oba są bardzo szybkie. Ponadto nie odmawiaj odpowiedzi mówiąc "NIE UŻYWAJ ...". Dostarczamy to, co uważamy za najlepsze rozwiązanie problemu i nie możesz ich wdrożyć. –
możliwy duplikat [Używanie tytułu z Ruby 1.8.7] (http://stackoverflow.com/questions/13117340/using-title-case-with-ruby-1-8-7) – oldergod
"NIE UŻYWAĆ Regex" brzmi kontrowersyjnie w podanym przykładzie kodu, ponieważ 'string.split' w rzeczywistości używa wyrażenia regularnego. Najprawdopodobniej chcesz coś już przygotowanego do użycia - spójrz na [titleize] (https://github.com/granth/titleize/blob/master/lib/titleize.rb). Może być zainstalowany jako klejnot. – mudasobwa