Is there another method like .next?


#1

I was looking for a way to iterate through the ascii values and was
trying to get it to not go from “9” to “10” or “Z” to “AA”. Evidently
the string method .next always returns digits for digits and letters for
letters. I could do something like:

a = “9”
b = “”
b << a[0].next => “[”

but this seems overly complicated. I have to initialize b or Ruby
complains of an undefined local variable or method and other methods of
string assignment return “91”.


#2

On Wed, Nov 19, 2008 at 7:41 PM, Michael W. Ryder
removed_email_address@domain.invalid wrote:

I was looking for a way to iterate through the ascii values

For classic printables…

(32…128).map {|int| int.chr}

You then have an array which you can #join if you want.

Todd


#3

Todd B. wrote:

On Wed, Nov 19, 2008 at 7:41 PM, Michael W. Ryder
removed_email_address@domain.invalid wrote:

I was looking for a way to iterate through the ascii values

For classic printables…

(32…128).map {|int| int.chr}

I think this should be (32…127).map as 128 is the not printable.
I had forgotten about .chr. This allows me to do b = a[0].next.chr and
get the desired result. This is a little more than I expected but a lot
simpler than my first attempt. Thanks for the pointer.

You then have an array which you can #join if you want.


#4

On Wed, Nov 19, 2008 at 10:21 PM, Michael W. Ryder
removed_email_address@domain.invalid wrote:

I think this should be (32…127).map as 128 is the not printable.

Thanks for the correction :slight_smile: Actually, it’s the 127 that’s not
printable, but who’s counting.

Todd