Re: simple gsub question \' \` what?
- From: Rob Biedenharn <Rob@xxxxxxxxxxxxxxxxxxxxxx>
- Date: Sat, 31 Mar 2007 07:31:12 +0900
On Mar 30, 2007, at 5:39 PM, Timothy Hunter wrote:
Dustin Anderson wrote:Sorry for the simple question, I just can't figure this out after aI'd use two calls to split:
couple hours...
I need to parse a string:
string = column-1:block-0,block-2,block-1,block-3
and I need to extract everything before the : (colon) into one variable
(should end up like this:
string1 = column-1
and then the rest of the string (block-0,block-2,block-1,block3) into an
array...
irb(main):001:0> string = 'column-1:block-0,block-2,block-1,block-3'
=> "column-1:block-0,block-2,block-1,block-3"
irb(main):002:0> string1, s = string.split(':')
=> ["column-1", "block-0,block-2,block-1,block-3"]
irb(main):003:0> string1
=> "column-1"
irb(main):004:0> string2 = s.split(',')
=> ["block-0", "block-2", "block-1", "block-3"]
irb(main):005:0>
You could probably turn that into a one-liner but that's just golfing.
Here's a bit of "live" code that does the same thing (plus .to_f on the elements before turning them into a Vector, but you can knock that part out yourself)
def add line
id, vals = line.split(/:\s*/, 2)
@labels << id
@data << Vector[*(vals.split(',').map {|v| v.to_f})]
end
Note that the second arg (2) to split is important if a ':' can occur anywhere in your block-N parts. Of course, you just need vals.split (',')
-Rob
Rob Biedenharn http://agileconsultingllc.com
Rob@xxxxxxxxxxxxxxxxxxxxxx
.
- References:
- simple gsub question \' \` what?
- From: Dustin Anderson
- Re: simple gsub question \' \` what?
- From: Timothy Hunter
- simple gsub question \' \` what?
- Prev by Date: Re: What is wrong in my script?
- Next by Date: Re: New presentation on Ruby
- Previous by thread: Re: simple gsub question \' \` what?
- Next by thread: What is wrong in my script?
- Index(es):
Relevant Pages
|