------art_14171_6955509.1197990969931
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

That's what i was looking for chr, i just forget that one. Thanks!

On Dec 18, 2007 12:05 PM, yermej <yermej / gmail.com> wrote:

> On Dec 18, 8:35 am, Roberto Decurnex Gorosito
> <decurnex.robe... / gmail.com> wrote:
> > I am have an String object like "12345678", and an Array object like
> > [ 8,7,6,5,4,3,2,1].
> > The main idea is:
> >
> > myStr  12345678'
> > myArray  8,7,6,5,4,3,2,1]
> > total  
> >
> > for i in 0..7
> >  total+ yStr[ i ].to_i  * myArray[ i ]
> > end
> >
> > The awaited result is 120 but coz myStr[ i ] returns the ascii fixnum
> > i can' t get it
>
> Fixnum#chr will give you the String back and then you can use
> String#to_i:
>
> total  
> myArray.each_with_index do |x, i|
>  total +  * myStr[i].chr.to_i
> end
> total
> 120
>
> Alternately, you could just subtract 48 from myStr[i] if you'll always
> be using ASCII, but I don't think that's a good way to do things.
>
> As a one-liner:
> myStr.split(//).zip(myArray).inject(0) {|acc, arr| acc + arr[0].to_i *
> arr[1]}
> 120
>
>

------art_14171_6955509.1197990969931--