From: "Jesús Gabriel y Galán" Date: 2008-08-25T22:53:28+09:00 Subject: Re: split not returning an array? On Mon, Aug 25, 2008 at 3:45 PM, Amanda .. wrote: > Hi there, I start out with a string containing at least 1 '+' separating > words in it. I'm trying to get an array using str.split('+'), so I can > use each word to do something different. > > So for example, I have string = "science+students" > Now I want an array: ["science", "students"] > > Problem is, when I do string.split('+'), I'm getting a single string > with the '+' removed, so if I do: > > @cmds = @string.split('+') > > for @item in @cmds > puts 1 > end > > '1' is only outputted once, and if I just print out @cmds, I get > "science students" (I used this to see how many items were in the > 'array') > > Can anyone explain to me what's happening here? It looks like the split > method is returning the original strings without the '+' characters, and > not an array as it should be... Your code works perfectly, see below, so my only theory is that @string doesn't have what you think it has. Can you print it before the split? irb(main):021:0> @string = "science+students" => "science+students" irb(main):022:0> @cmds = @string.split('+') => ["science", "students"] irb(main):023:0> for @item in @cmds irb(main):024:1> puts 1 irb(main):025:1> end 1 1 => ["science", "students"] Jesus.