,elegant

L

Leslie Viljoen

Hiya!

This function adds commas to a string after every three characters
so a number would be easier to read. It's kinda ugly though, and I can't
help thinking there'd be a elegant Why-esque one or two liner to do
this kind of thing - anyone care to improve it?


def add_commas(str)
return nil if str.class != String

ret = ""
len = str.length
i = len - 1
while i >= 0
ret = str.chr + ret
if ((len-i) % 3) == 0
ret = "," + ret
end
i -= 1
end
if ret[0].chr == ","
ret = ret[1..-1]
end
ret
end
 
J

James Edward Gray II

Hiya!

This function adds commas to a string after every three characters
so a number would be easier to read. It's kinda ugly though, and I
can't
help thinking there'd be a elegant Why-esque one or two liner to do
this kind of thing - anyone care to improve it?

Does this help?

http://rubyurl.com/EOi

James Edward Gray II
 
A

ara.t.howard

Hiya!

This function adds commas to a string after every three characters
so a number would be easier to read. It's kinda ugly though, and I can't
help thinking there'd be a elegant Why-esque one or two liner to do
this kind of thing - anyone care to improve it?


def add_commas(str)
return nil if str.class != String

ret = ""
len = str.length
i = len - 1
while i >= 0
ret = str.chr + ret
if ((len-i) % 3) == 0
ret = "," + ret
end
i -= 1
end
if ret[0].chr == ","
ret = ret[1..-1]
end
ret
end


harp:~ > cat a.rb
def commafy s
s.to_s.reverse.scan(%r/.{1,3}/).join(',').reverse
end

p(commafy(''))
p(commafy('4'))
p(commafy('42'))
p(commafy('422'))
p(commafy('4242'))
p(commafy('42424'))
p(commafy('424242'))
p(commafy('4242424'))

harp:~ > ruby a.rb
""
"4"
"42"
"422"
"4,242"
"42,424"
"424,242"
"4,242,424"

if you want you can play with the pattern so the two reverses aren't needed...
but this is quicker to write ;-)

-a
--
===============================================================================
| ara [dot] t [dot] howard [at] noaa [dot] gov
| all happiness comes from the desire for others to be happy. all misery
| comes from the desire for oneself to be happy.
| -- bodhicaryavatara
===============================================================================
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top