Velocity Reviews > Ruby > Seems so simple, but is this really the only way, or most directway?

# Seems so simple, but is this really the only way, or most directway?

John Pywtorak
Guest
Posts: n/a

 10-18-2006
9 digits in a string "123456789", convert to individual Fixnums
[1,2,3,4,5,6,7,8,9], or as below

a, b, c, d, e, f, g, h, i = id.scan(/\d/).map(&:to_i)

Simpler yet how about ["1", "2", ...]. Is scan the only direct way?

I tried the "*" mechanism, no such luck, and tried array slicing again
no luck. TIA
--
John Pywtorak
Cal Poly State University
ITS/ASAS
805-756-5906

Phrogz
Guest
Posts: n/a

 10-18-2006
John Pywtorak wrote:
> 9 digits in a string "123456789", convert to individual Fixnums

irb(main):001:0> s = "123456789"
=> "123456789"
irb(main):002:0> s.split('').map{ |n| n.to_i }
=> [1, 2, 3, 4, 5, 6, 7, 8, 9]

Mike Dvorkin
Guest
Posts: n/a

 10-18-2006
id.unpack('c' * id.size).map { |x| x-48 } # without regex and to_i
conversions

Mike Dvorkin
http://www.rubywizards.com

On Oct 17, 2006, at 5:36 PM, John Pywtorak wrote:

> 9 digits in a string "123456789", convert to individual Fixnums
> [1,2,3,4,5,6,7,8,9], or as below
>
> a, b, c, d, e, f, g, h, i = id.scan(/\d/).map(&:to_i)
>
> Simpler yet how about ["1", "2", ...]. Is scan the only direct way?
>
> I tried the "*" mechanism, no such luck, and tried array slicing
> again no luck. TIA
> --
> John Pywtorak
> Cal Poly State University
> ITS/ASAS
> 805-756-5906
>
>
>

Harold Hausman
Guest
Posts: n/a

 10-18-2006
On 10/18/06, John Pywtorak <(E-Mail Removed)> wrote:
> 9 digits in a string "123456789", convert to individual Fixnums
> [1,2,3,4,5,6,7,8,9], or as below
>
> a, b, c, d, e, f, g, h, i = id.scan(/\d/).map(&:to_i)
>
> Simpler yet how about ["1", "2", ...]. Is scan the only direct way?
>

"123456789".split( '' ) #thats two single quotes. (:

hth,
-Harold

benjohn@fysh.org
Guest
Posts: n/a

 10-18-2006
> 9 digits in a string "123456789", convert to individual Fixnums
> [1,2,3,4,5,6,7,8,9], or as below
>
> a, b, c, d, e, f, g, h, i = id.scan(/\d/).map(&:to_i)
>
> Simpler yet how about ["1", "2", ...]. Is scan the only direct way?
>
> I tried the "*" mechanism, no such luck, and tried array slicing again
> no luck. TIA

(1..9).to_a

?

I'm not quite sure what you are trying to do, you see Are you trying
to actaully set variables? If you are, first I'd ask "why are you trying
to set a range of instance variables". After that, if you're sure you do
(and hell, "for fun" is an answer), then I'm sure that there is a method
like instance_variable_set, only for manipulating local variables, but
oddly, I don't seem able to find it at the moment...