Converting number to its digits as an array

I’m new to ruby and I was trying to solve a problem where I convert a
number into an array in such a way.

If I have the number 12345, how do I take that number and put it into an
array but where each element is a digit of the number 12345?

If this is the wrong place to have posted such a question (for various
reasons) then let me know.

Not terribly difficult to accomplish. Check out the .split() method of
the string class:

http://ruby-doc.org/core/classes/String.html#M000803

Victor qwerty wrote:

I’m new to ruby and I was trying to solve a problem where I convert a
number into an array in such a way.

If I have the number 12345, how do I take that number and put it into an
array but where each element is a digit of the number 12345?

If this is the wrong place to have posted such a question (for various
reasons) then let me know.

irb(main):001:0> “12345”.scan(/./)
=> [“1”, “2”, “3”, “4”, “5”]

Thank you.

If I try one of these methods, I still can’t go from element to element
in the array. I don’t want to just show a list, I want an actual array.

Ian Ian wrote:

I’m new to ruby and I was trying to solve a problem where I convert a
number into an array in such a way.

If I have the number 12345, how do I take that number and put it into an
array but where each element is a digit of the number 12345?

There’s a myriad ways to do that. I find this one the simplest,
easiest to read and easiest to understand:

12345.to_s.chars.map(&:to_i)

jwm

On Sat, Sep 18, 2010 at 2:47 PM, Victor qwerty
[email protected]wrote:

If I try one of these methods, I still can’t go from element to element
in the array. I don’t want to just show a list, I want an actual array.

Posted via http://www.ruby-forum.com/.

All of these methods return an Array. Why don’t you show us what you’re
trying to do.

Josh C. wrote:

On Sat, Sep 18, 2010 at 2:47 PM, Victor qwerty
[email protected]wrote:

If I try one of these methods, I still can’t go from element to element
in the array. I don’t want to just show a list, I want an actual array.

Posted via http://www.ruby-forum.com/.

All of these methods return an Array. Why don’t you show us what you’re
trying to do.

It says I can’t do the each method, but if I have the array, can’t I
iterate through each element in the array?

x = 5 ** 500

x.to_s.scan(/./)

y = 0

x.each do |i|

i.to_i

y += i

end

puts y

Thank you so much! That really clarifies things. It did the program
successfully and now I know a little bit more about why.

Victor qwerty wrote:

x = 5 ** 500

x.to_s.scan(/./)

The value of this expression is an array, but you don’t assign it to
anything, so it is lost. Try:

digits = x.to_s.scan(/./)

y = 0

x.each do |i|

digits.each do |i|

i.to_i

That again does nothing - it converts i to an integer, but the resulting
value is discarded.

y += i

You probably meant:

val = i.to_i
y += val

or more simply,

y += i.to_i

end

puts y

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs