G
Georgy
Hi,
I've been playing with characters (OK, there's no such type in
Ruby, it's rather like characters in C - just plain integer numbers).
String of length 1 to a char: str1[0] --> chr_int
Char to a String of length 1: chr_int.chr --> str1
Get a char from a string: str[n] --> chr_int # or nil
Put a char into a string: str[n] = chr_int
So we can think of a "char" as a single element of a string.
Now, having that an integer is a single element of an array,
we'd like to have functions/expressions for converting arrays
of integers and strings back and forth.
Array to String: [97,98,99].map{|e|e.chr}.join --> "abc"
String to Array: "abc" ????????????? --> [97,98,99]
I've found that this function can do it:
def s2a(s); r=[]; s.each_byte {|b| r<<b}; r; end
s2a("abc") --> [97,98,99]
But can it be an expression w/o a function or with a shorter
"more elegant" function, w/o accumulator r?
Regards,
Georgy
I've been playing with characters (OK, there's no such type in
Ruby, it's rather like characters in C - just plain integer numbers).
String of length 1 to a char: str1[0] --> chr_int
Char to a String of length 1: chr_int.chr --> str1
Get a char from a string: str[n] --> chr_int # or nil
Put a char into a string: str[n] = chr_int
So we can think of a "char" as a single element of a string.
Now, having that an integer is a single element of an array,
we'd like to have functions/expressions for converting arrays
of integers and strings back and forth.
Array to String: [97,98,99].map{|e|e.chr}.join --> "abc"
String to Array: "abc" ????????????? --> [97,98,99]
I've found that this function can do it:
def s2a(s); r=[]; s.each_byte {|b| r<<b}; r; end
s2a("abc") --> [97,98,99]
But can it be an expression w/o a function or with a shorter
"more elegant" function, w/o accumulator r?
Regards,
Georgy