[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: Quickest way to do this string op.

Peter Palmer

3/13/2006 1:44:00 PM

Answer : No you can't. Please ignore me ;)




On Mon, 2006-03-13 at 22:36 +0900, Peter Palmer wrote:
> Hi,
>
> I'm new to Ruby but can't you just use :
>
> "BOCA RATON".capitalize
>
> ?
>
>
> Cheers,
>
>
> Pete
>
>
>
>
>
> On Mon, 2006-03-13 at 22:34 +0900, Kroeger, Simon (ext) wrote:
> >
> > > -----Original Message-----
> > > From: Carlos [mailto:angus@quovadis.com.ar]
> > > Sent: Monday, March 13, 2006 2:31 PM
> > > To: ruby-talk ML
> > > Subject: Re: Quickest way to do this string op.
> > >
> > > eastcoastcoder@gmail.com wrote:
> > >
> > > > What's the quickest way to turn "BOCA RATON" into "Boca Raton"?
> > >
> > > "BOCA RATON".replace "Boca Raton" # :-P
> > >
> > > Probably
> > >
> > > "BOCA RATON".split(/\b/).map{|s| s.capitalize }.join
> > >
> > > It is quick to write, at least...
> > >
> > > HTH
> >
> > "BOCA RATON".gsub(/\w+/){|w| w.capitalize}
> >
> > is even shorter :)
> >
> > cheers
> >
> > Simon
> >
>



1 Answer

james_b

3/13/2006 2:27:00 PM

0

Peter Palmer wrote:
> Answer : No you can't. Please ignore me ;)

Do we ignore the message asking us to ignore you?

:)

Anyway, you were on the right track, but the string needs to be chunked
on white space, then regrouped.

"BOCA RATON".split( /\s/ ).map{ |w| w.capitalize }.join( ' ' )

If one tends to do this a lot, it can be added as an instance method to
String:

class String
def titlize
self.split( /\s/).map{ |w| w.capitalize }.join( ' ' )
end
end

"BOCA RATON".titlize

--
James Britt

“Design depends largely on constraints.”
— Charles Eames