Newb question: I want to read the user input an array of numbers. Is
this possible? If not, then I want to convert the string input (from
gets) into an array.
For example:
user inputs [5,3,46,6,5]
gets.chomp converts this to a string "[5,3,46,6,5]"
I want [5,3,46,6,5] (the arrray, not the string)
irb(main):017:0> x = '[5,3,46,6,5]'
=> "[5,3,46,6,5]"
irb(main):018:0> y = x[1..-2].split(',').collect! {|n| n.to_i}
=> [5, 3, 46, 6, 5]
irb(main):019:0>
1. x[1..-2] is the string without the brackets.
2. split(',') splits the string at commas into an array of strings.
3. collect! calls .to_i on each string in the array and replaces the
string with the result of the conversion.
···
On Mar 23, 6:36 pm, Shengzhi Li <shengz...@gmail.com> wrote:
Hey everyone,
Newb question: I want to read the user input an array of numbers. Is
this possible? If not, then I want to convert the string input (from
gets) into an array.
For example:
user inputs [5,3,46,6,5]
gets.chomp converts this to a string "[5,3,46,6,5]"
I want [5,3,46,6,5] (the arrray, not the string)
a = "[5,3,46,6,5]"
a.gsub!(/[\[\]]/,'').split(/\s*,\s*/)
=> ["5", "3", "46", "6", "5"]
This removes the first, then splits on ,
-d
···
On Sat, Mar 24, 2007 at 07:36:31AM +0900, Shengzhi Li wrote:
Hey everyone,
Newb question: I want to read the user input an array of numbers. Is
this possible? If not, then I want to convert the string input (from
gets) into an array.
For example:
user inputs [5,3,46,6,5]
gets.chomp converts this to a string "[5,3,46,6,5]"
I want [5,3,46,6,5] (the arrray, not the string)
On Mar 23, 4:36 pm, Shengzhi Li <shengz...@gmail.com> wrote:
Hey everyone,
Newb question: I want to read the user input an array of numbers. Is
this possible? If not, then I want to convert the string input (from
gets) into an array.
For example:
user inputs [5,3,46,6,5]
gets.chomp converts this to a string "[5,3,46,6,5]"
I want [5,3,46,6,5] (the arrray, not the string)
> Hey everyone,
>
> Newb question: I want to read the user input an array of numbers. Is
> this possible? If not, then I want to convert the string input (from
> gets) into an array.
>
> For example:
>
> user inputs [5,3,46,6,5]
> gets.chomp converts this to a string "[5,3,46,6,5]"
> I want [5,3,46,6,5] (the arrray, not the string)
a = "[5,3,46,6,5]"
a.gsub!(/[\[\]]/,'').split(/\s*,\s*/)
=> ["5", "3", "46", "6", "5"]
This removes the first, then splits on ,
missed the collect as mentioned in the other response.
···
On Sat, Mar 24, 2007 at 07:51:27AM +0900, Daniel wrote:
On Sat, Mar 24, 2007 at 07:36:31AM +0900, Shengzhi Li wrote:
-d
--
"You will never know how much it has cost my generation to preserve your
freedom. I hope you will make good use of it." -- John Quincy Adams
"Yes, we did produce a near-perfect republic. But will they keep it? Or will
they, in the enjoyment of plenty, lose the memory of freedom? Material
abundance without character is the path of destruction." -- Thomas Jefferson
If your input is "[1,2,3,4]" then it will return an array with 4
elements of 1, 2, 3 and 4, respectively. Of course, you could input
any valid (or not so valid) YAML and get back a String or Hash or....
The rescue is just to ensure we get a nil instead of an error on
really bad input.
If your input is "[1,2,3,4]" then it will return an array with 4
elements of 1, 2, 3 and 4, respectively. Of course, you could input
any valid (or not so valid) YAML and get back a String or Hash or....
The rescue is just to ensure we get a nil instead of an error on
really bad input.