scan metodos example array ruby string

metodos - scan ruby example



Ruby capitaliza cada palabra primera letra (7)

En Rails:

"kirk douglas".titleize => "Kirk Douglas" #this also works for ''kirk_douglas''

sin rieles:

"kirk douglas".split(/ |/_/).map(&:capitalize).join(" ") #OBJECT IT OUT def titleize(str) str.split(/ |/_/).map(&:capitalize).join(" ") end

sin rieles (activeSupport de load rails para parchar el método #titleize en String )

require ''active_support/core_ext'' "kirk douglas".titleize #=> "Kirk Douglas"

(algunos) casos de uso de cadenas manejados por #titleize

  • "kirk douglas"
  • "kirk_douglas"
  • "kirk-douglas"
  • "kirkDouglas"
  • "KirkDouglas"

#titleize gotchas

El método #titleize es un poco más complejo de lo que uno podría esperar inicialmente y puede producir resultados inesperados, especialmente con situaciones que distinguen entre mayúsculas y minúsculas, como lo señala @JamesMcMahon:

"hEy lOok".titleize #=> "H Ey Lo Ok"

porque está destinado a manejar el código camel-cased como:

"kirkDouglas".titleize #=> "Kirk Douglas"

Para lidiar con este borde, puedes limpiar tu cadena con #downcase antes de ejecutar #titleize. Por supuesto, si lo haces, eliminarás las separaciones de palabras de camelCase:

"kirkDouglas".downcase.titleize #=> "Kirkdouglas"

Necesito hacer el primer carácter de cada palabra en mayúscula, y hacer el resto en minúscula ...

manufacturer.MFA_BRAND.first.upcase

solo está poniendo la primera letra en mayúscula, pero necesito esto:

ALFA ROMEO => Alfa Romeo AUDI => Audi BMW => Bmw ONETWO THREE FOUR => Onetwo Three Four



Otra opción es usar un regex y un gsub, que toma un bloque:

''one TWO three foUR''.gsub(//w+/, &:capitalize)


Si intentas poner en mayúscula la primera letra de cada palabra en una matriz, simplemente puedes poner esto:

array_name.map (&: capitalize)


prueba esto:

puts ''one TWO three foUR''.split.map(&:capitalize).join('' '') #=> One Two Three Four

o

puts ''one TWO three foUR''.split.map(&:capitalize)*'' ''


"hello world".titleize que debería dar salida a "Hello World".


"hello world".split.each{|i| i.capitalize!}.join('' '')