String Element Reference

J

jason solomon

I am new to Ruby so I apologize if this seems dumb.

I am currently running ruby 1.8.7 (2009-06-12 patchlevel 174)
[universal-darwin10.0].

When working in an irb session I'm having trouble with String element
reference.

Example:

a = "hello"

a[0] should return "h", but instead is returning 104.

Seems like it's return the ascii value of the element, but why?


When I do a[0,3] the return is the expected "hel".




Any ideas as to why a[0] is returning a FixNumb object?

Ideas / help would be greatly appreciated.
 
R

Robert Klemme

I am new to Ruby so I apologize if this seems dumb.

I am currently running ruby 1.8.7 (2009-06-12 patchlevel 174)
[universal-darwin10.0].

When working in an irb session I'm having trouble with String element
reference.

Example:

a = "hello"

a[0] should return "h", but instead is returning 104.

Seems like it's return the ascii value of the element, but why?


When I do a[0,3] the return is the expected "hel".




Any ideas as to why a[0] is returning a FixNumb object?

Ideas / help would be greatly appreciated.

This has changed in Ruby 1.9. You probably read 1.9 documentation
that's why you expect a[0] to return "h".

Kind regards

robert
 
7

7stud --

jason solomon wrote in post #1000974:
I am new to Ruby so I apologize if this seems dumb.

I am currently running ruby 1.8.7 (2009-06-12 patchlevel 174)
[universal-darwin10.0].

When working in an irb session I'm having trouble with String element
reference.

Example:

a = "hello"

a[0] should return "h", but instead is returning 104.

Seems like it's return the ascii value of the element, but why?


When I do a[0,3] the return is the expected "hel".




Any ideas as to why a[0] is returning a FixNumb object?

For some reason Matz thought it was more useful to define the [] method
for strings to return the ascii value. As you discovered, if you
specify a length as the second argument, you get the characters.
Applying that knowledge, if you specify a length of 1, you will get the
character. So the expression:

str[0,1]

will return the character in both ruby 1.8 and ruby 1.9.
 
J

Javier Hidalgo Villegas

That is the way String indexing works in Ruby=2C if you only pass one param=
eter you'll get the ASCII value of the character. If you would like to get =
"h" you must do a[0=2C1] where the first parameter tells the parser to get=
the first character of the String and the second parameter tells the numbe=
r of characters you want to get from that position.
Hope this helps
Javier Hidalgo



Date: Thu=2C 26 May 2011 02:23:38 +0900
From: (e-mail address removed)
Subject: String Element Reference
To: (e-mail address removed)
=20
I am new to Ruby so I apologize if this seems dumb.
=20
I am currently running ruby 1.8.7 (2009-06-12 patchlevel 174)
[universal-darwin10.0].
=20
When working in an irb session I'm having trouble with String element
reference.
=20
Example:
=20
a =3D "hello"
=20
a[0] should return "h"=2C but instead is returning 104.
=20
Seems like it's return the ascii value of the element=2C but why?
=20
=20
When I do a[0=2C3] the return is the expected "hel".
=20
=20
=20
=20
Any ideas as to why a[0] is returning a FixNumb object?
=20
Ideas / help would be greatly appreciated.
=20
--=20
Posted via http://www.ruby-forum.com/.
=20
=
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top