Domanda

Ho dovuto convertire una serie di frasi nei nomi dei metodi inossidati da cammelli.Ho finito a scrivere qualcosa per questo.Sono ancora curioso se c'è qualcosa di più semplice per questo.

Dato la stringa a = "This is a test." Output thisIsATest

Ho usato per seguire:

a.downcase.gsub(/\s\w/){|b| b[-1,1].upcase }
.

È stato utile?

Soluzione

Non sono sicuro che sia meglio come la tua soluzione, ma dovrebbe fare il trucco:

>> "This is a test.".titleize.split(" ").join.camelize(:lower)
=> "thisIsATest."
.

    .
  • titoloze: maiuscolo ogni prima lettera di ogni parola
  • split (""). Join: crea un array con ogni parola e unisciti per spremere gli spazi
  • Camelize (: inferiore): crea la prima lettera minuscola

Puoi trovare alcune funzioni più divertenti nei rotali Docs: http://api.rububyonrails.org/classes/activesupport/coreeextensions/String/inflections.html

Altri suggerimenti

"active_record".camelize(:lower)
.

Uscita: "ActiveRecord"

Usa questi

"Some string for you".gsub(/\s+/,'_').camelize(:lower) #=> "someStringForYou"
.
    .
  1. Gsub: Sostituisci gli spazi per DETERSCORES
  2. Camelize: Metodo simile a Java Camelcase

Potresti provare a utilizzare il gemma 'inglese', disponibile su http://english.rubyforge.org/

require 'english/case'

a = "This is a test."

a.camelcase().uncapitalize() # => 'thisIsATest
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top