# Strip method

**URL:** <https://www.ruby-forum.com/t/strip-method/136440>\
**Category:** Ruby\
**Created:** [May 2, 2008, 4:39am UTC](https://www.ruby-forum.com/t/strip-method/136440 "2008-05-02T04:39:25Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![masiarek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ec9cab/32.png) [@masiarek](https://www.ruby-forum.com/u/masiarek)\
**Post date:** [May 2, 2008, 4:39am UTC](https://www.ruby-forum.com/t/strip-method/136440/1 "2008-05-02T04:39:25Z")

</div>

s = \<\<EOS  
a1\t b1  
a2\tb2  
EOS

s.each{|e|  
a = e.strip.split("\t")  
p a[1]  
}

output:  
" b1"  
“b2”

expected output:  
“b1”  
“b2”

What is wrong?

---

<div class="post-metadata">

**Author:** ![masiarek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ec9cab/32.png) [@masiarek](https://www.ruby-forum.com/u/masiarek)\
**Post date:** [May 2, 2008, 4:42am UTC](https://www.ruby-forum.com/t/strip-method/136440/2 "2008-05-02T04:42:43Z")

</div>

This works fine …

s.each{|e|  
a = e.gsub(’ ‘,’’).split("\t")  
p a[1]  
}

---

<div class="post-metadata">

**Author:** ![masiarek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ec9cab/32.png) [@masiarek](https://www.ruby-forum.com/u/masiarek)\
**Post date:** [May 2, 2008, 4:50am UTC](https://www.ruby-forum.com/t/strip-method/136440/3 "2008-05-02T04:50:23Z")

</div>

Hi –

On Fri, 2 May 2008, Amasa M. wrote:

> output:  
> " b1"  
> “b2”
> 
> expected output:  
> “b1”  
> “b2”
> 
> What is wrong?

Your expectation 🙂 Sorry, I couldn’t resist.

strip removes space on the right and left. If you start with  
“a1\t b1\n”, the stripped version is “a1\t b1”. If you split that on  
\t, you get “a1” and " b1". At no point have you removed the middle  
space.

David

---

<div class="post-metadata">

**Author:** ![masiarek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ec9cab/32.png) [@masiarek](https://www.ruby-forum.com/u/masiarek)\
**Post date:** [May 2, 2008, 5:00am UTC](https://www.ruby-forum.com/t/strip-method/136440/4 "2008-05-02T05:00:54Z")

</div>

On May 1, 9:39 pm, Amasa M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Posted viahttp://www.ruby-forum.com/.  
> "

a1\t b1  
a2\tb2

“.strip.each{|x|  
a = x.split(”\t").map{|s| s.strip }  
p a.last  
}

---

<div class="post-metadata">

**Author:** ![masiarek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ec9cab/32.png) [@masiarek](https://www.ruby-forum.com/u/masiarek)\
**Post date:** [May 2, 2008, 4:49am UTC](https://www.ruby-forum.com/t/strip-method/136440/5 "2008-05-02T04:49:13Z")

</div>

2008/5/1 Amasa M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> output:  
> " b1"  
> “b2”
> 
> expected output:  
> “b1”  
> “b2”
> 
> What is wrong?

## k$ qri String#strip ----------------------------------------------------------- String#strip str.strip =\> new\_str

```
 Returns a copy of str with leading and trailing whitespace removed.

```

Leading and trailing doesn’t mean internal. So:

“a1\t b1”.strip #=\> “a1\t b1”

–  
Rick DeNatale

My blog on Ruby  
[http://talklikeaduck.denhaven2.com/](http://talklikeaduck.denhaven2.com/)

---

<div class="post-metadata">

**Author:** ![masiarek](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ec9cab/32.png) [@masiarek](https://www.ruby-forum.com/u/masiarek)\
**Post date:** [May 2, 2008, 9:23pm UTC](https://www.ruby-forum.com/t/strip-method/136440/6 "2008-05-02T21:23:46Z")

</div>

On Thu, May 1, 2008 at 10:00 PM, William J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> > ## }
> 
> a = x.split(“\t”).map{|s| s.strip }  
> p a.last  
> }

Or split on whitespace instead of on tabs alone.

s.each{|e|  
a = e.split(“\s”)  
p a[1]  
}
