From: Roberto Eduardo Decurnex Gorosito Date: 2007-12-19T00:16:05+09:00 Subject: Re: Convert a char into numbre ------=_Part_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 wrote: > On Dec 18, 8:35 am, Roberto Decurnex Gorosito > 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 = 0 > > > > for i in 0..7 > > total+= myStr[ 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 = 0 > myArray.each_with_index do |x, i| > total += x * 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 > > ------=_Part_14171_6955509.1197990969931--