Ich muss aus jedem Word das erste Zeichen in Großbuchstaben und den Rest in Kleinbuchstaben machen ...
manufacturer.MFA_BRAND.first.upcase
setzt nur den ersten Buchstaben in Großbuchstaben, aber ich brauche folgendes:
ALFA ROMEO => Alfa Romeo
AUDI => Audi
BMW => Bmw
ONETWO THREE FOUR => Onetwo Three Four
versuche dies:
puts 'one TWO three foUR'.split.map(&:capitalize).join(' ')
#=> One Two Three Four
oder
puts 'one TWO three foUR'.split.map(&:capitalize)*' '
In Rails:
"kirk douglas".titleize => "Kirk Douglas"
#this also works for 'kirk_douglas'
ohne Schienen:
"kirk douglas".split(/ |\_/).map(&:capitalize).join(" ")
#OBJECT IT OUT
def titleize(str)
str.split(/ |\_/).map(&:capitalize).join(" ")
end
ohne Rails (laden Sie ActiveSupport von Rails, um die Methode #titleize auf String
zu patchen)
require 'active_support/core_ext'
"kirk douglas".titleize #=> "Kirk Douglas"
Die #Titleize-Methode ist etwas komplexer, als man zunächst erwarten könnte, und kann zu unerwarteten Ergebnissen führen, insbesondere in Fällen, in denen die Groß- und Kleinschreibung beachtet wird, wie von @JamesMcMahon aufgezeigt:
"hEy lOok".titleize #=> "H Ey Lo Ok"
weil es dazu gedacht ist, mit Code in Kamelhülle zu arbeiten:
"kirkDouglas".titleize #=> "Kirk Douglas"
Um mit diesem Edge-Fall fertig zu werden, können Sie Ihren String zuerst mit #downcase
bereinigen, bevor Sie #titleize ausführen. Wenn Sie dies tun, werden Sie alle Trennungen von camelCased Word natürlich löschen:
"kirkDouglas".downcase.titleize #=> "Kirkdouglas"
"hello world".titleize
der "Hello World" ausgeben soll.
Eine weitere Option ist die Verwendung eines Regex und eines Gsub, der einen Block belegt:
'one TWO three foUR'.gsub(/\w+/, &:capitalize)
Sehen Sie sich die String # -Methode an.
http://www.Ruby-doc.org/core-1.9.3/String.html#method-i-capitalize
"hello world".split.each{|i| i.capitalize!}.join(' ')
Wenn Sie versuchen, den ersten Buchstaben jedes Wortes in einem Array groß zu schreiben, können Sie einfach Folgendes eingeben:
array_name.map (&: capitalize)