So there is an to_s for strings and a to_i for integers. However, if I
have an array of integers and I want to grab one, I get back and ASCII
character. For example, when I grab a 1 from the array it returns a 49 -
but I wanted the one! How do I convert it back to its integer
want-to-be? Thanks,
~S
P.S. I imagine this is probably an easy solution but, I am a ruby
newbie.
···
--
Posted via http://www.ruby-forum.com/.
Shandy Nantz wrote:
So there is an to_s for strings and a to_i for integers. However, if I
have an array of integers and I want to grab one, I get back and ASCII
character.
Are you sure you have an array of integers?
Show some code.
For example, when I grab a 1 from the array it returns a 49 -
but I wanted the one! How do I convert it back to its integer
want-to-be? Thanks,
This works for me:
# Create int array, 11 to 19
# the * expands the range into an array
a = *11..19
# print it to see what we have
p a
# See what we have at the first location
p a[0] # I get 11
···
--
James Britt
"Take eloquence and wring its neck."
- Paul Verlaine
Shandy Nantz wrote:
So there is an to_s for strings and a to_i for integers. However, if I
have an array of integers and I want to grab one, I get back and ASCII
character. For example, when I grab a 1 from the array it returns a 49 -
but I wanted the one! How do I convert it back to its integer
want-to-be? Thanks,
~S
P.S. I imagine this is probably an easy solution but, I am a ruby
newbie.
Shandy, Perhaps this helps. Note the difference between 004 and 006
irb(main):003:0> i = "1234"
=> "1234"
irb(main):004:0> i[0]
=> 49
irb(main):005:0> i[0].class
=> Fixnum
irb(main):006:0> i[0,1]
=> "1"
irb(main):007:0> i[0,1].class
=> String
irb(main):008:0> i[0,1].to_i
=> 1
irb(main):009:0> i[0,1].to_i.class
=> Fixnum
Good luck from another newbie.
Ian
···
--
Posted via http://www.ruby-forum.com/\.
arr = "1234"
Will only give you a string.
You need :
arr = Array.new
arr << 1
arr << 2
...
OR
arr = [1,2,3,4,]
At the command line, use ri:
ri Array
ri '='
ri 'Array#='
ri 'String#='
···
On Jul 17, 2007, at 5:05 PM, Ian Whitlock wrote:
Shandy Nantz wrote:
So there is an to_s for strings and a to_i for integers. However, if I
have an array of integers and I want to grab one, I get back and ASCII
character. For example, when I grab a 1 from the array it returns a 49 -
but I wanted the one! How do I convert it back to its integer
want-to-be? Thanks,
~S
P.S. I imagine this is probably an easy solution but, I am a ruby
newbie.
Shandy, Perhaps this helps. Note the difference between 004 and 006
irb(main):003:0> i = "1234"
=> "1234"
irb(main):004:0> i[0]
=> 49
irb(main):005:0> i[0].class
=> Fixnum
irb(main):006:0> i[0,1]
=> "1"
irb(main):007:0> i[0,1].class
=> String
irb(main):008:0> i[0,1].to_i
=> 1
irb(main):009:0> i[0,1].to_i.class
=> Fixnum
--
Posted via http://www.ruby-forum.com/\.
Sorry about not giving code. I did finally get it to work, but here is
what I had to do:
card_num = "123456789"
c = 0
char = card_num[i..i].to_i
before I had:
char = card_num[i].to_i
All I wanted to do was to pick out a single character (a digit) from
that string and perform some calculations on it. But by just saying [i]
I got a 57 value when I wanted the 9 value. When I said [i..i] I got the
9 value. Thanks for all your help,
~S
···
--
Posted via http://www.ruby-forum.com/.
Shandy Nantz wrote:
Sorry about not giving code. I did finally get it to work, but here is what I had to do:
card_num = "123456789"
c = 0
char = card_num[i..i].to_i
before I had:
char = card_num[i].to_i
All I wanted to do was to pick out a single character (a digit) from that string and perform some calculations on it. But by just saying [i] I got a 57 value when I wanted the 9 value. When I said [i..i] I got the 9 value. Thanks for all your help,
~S
Card_num[i] is returning the character value at position i.
card_num[i].chr will return the character at position i
card_num[i].chr.to_i will return the integer value of the character
card_num[i].type => Fixnum
card_num[i..i].type => String and is why card_num[i..i].to_i worked
It's a bit late, I guess, but did you consider something like:
"123456789"[-1] - ?0 # => 9
Regards, Morton
···
On Jul 18, 2007, at 10:51 AM, Shandy Nantz wrote:
Sorry about not giving code. I did finally get it to work, but here is
what I had to do:
card_num = "123456789"
c = 0
char = card_num[i..i].to_i
before I had:
char = card_num[i].to_i
All I wanted to do was to pick out a single character (a digit) from
that string and perform some calculations on it. But by just saying [i]
I got a 57 value when I wanted the 9 value. When I said [i..i] I got the
9 value. Thanks for all your help,