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

Discussion in 'Ruby' started by John Pywtorak, Oct 18, 2006.

1. ### John PywtorakGuest

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

John Pywtorak, Oct 18, 2006

2. ### PhrogzGuest

Re: Seems so simple, but is this really the only way, or most direct way?

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]

Phrogz, Oct 18, 2006

3. ### Mike DvorkinGuest

Re: Seems so simple, but is this really the only way, or most direct way?

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
>
>
>

Mike Dvorkin, Oct 18, 2006
4. ### Harold HausmanGuest

Re: Seems so simple, but is this really the only way, or most direct way?

On 10/18/06, 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?
>

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

hth,
-Harold

Harold Hausman, Oct 18, 2006
5. ### Guest

Re: Seems so simple, but is this really the only way,or most direct way?

> 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...

, Oct 18, 2006