def titleize(string)
string.split(" ").map {|word| word.capitalize}.join(" ")
end
Questo titolo significa ogni singola parola, ma come faccio a catturare determinate parole che non voglio maiuscole?Ruby: Titleize: Come faccio a ignorare parole più piccole come 'e', 'the', 'o, ecc.
ie) Jack e Jill
E prega di non utilizzare Regex.
UPDATE:
Sto avendo difficoltà a fare questo lavoro di codice: l'ho preso per stampare un array di parole tutte le protezioni, ma non senza la lista qui sotto.
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
Si crea quello che viene chiamato un elenco di "stop-parola", che contiene le parole che non si desidera elaborare. Può essere un array, un set, un hash o un'espressione regolare. Regex è un modo comune per gestire il problema come è un hash, in quanto entrambi sono molto veloci. Inoltre, non rifiutare le risposte dicendo "NON UTILIZZARE ...". Forniamo quelle che riteniamo le migliori soluzioni a un problema e sei libero di non implementarle. –
possibile duplicato di [Uso di title case con Ruby 1.8.7] (http://stackoverflow.com/questions/13117340/using-title-case-with-ruby-1-8-7) – oldergod
"DO NOT USE Regex" sembra controverso nel codice di esempio dato, dato che 'stringa.split' in effetti usa la regex. Probabilmente vuoi un minimo già preparato per l'uso, quindi dai un'occhiata a [titleize] (https://github.com/granth/titleize/blob/master/lib/titleize.rb). Potrebbe essere installato come gemma. – mudasobwa