www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Compress spaces to one space

reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
Is there a Phobos function to compress all spaces to just one space in a string?

E.g. " foo   bar             "
becomes: " foo bar "
Feb 21 2012
next sibling parent bearophile <bearophileHUGS lycos.com> writes:
Andrej Mitrovic:

 Is there a Phobos function to compress all spaces to just one space in a
string?
 
 E.g. " foo   bar             "
 becomes: " foo bar "

import std.string; void main() { assert(" foo bar ".squeeze() == " fo bar "); } Bye, bearophile
Feb 21 2012
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
Oh cool, it even takes an optional parameter. Thanks!

On 2/21/12, bearophile <bearophileHUGS lycos.com> wrote:
 Andrej Mitrovic:

 Is there a Phobos function to compress all spaces to just one space in a
 string?

 E.g. " foo   bar             "
 becomes: " foo bar "

import std.string; void main() { assert(" foo bar ".squeeze() == " fo bar "); } Bye, bearophile

Feb 21 2012
prev sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 2/21/12, bearophile <bearophileHUGS lycos.com> wrote:
 Andrej Mitrovic:

 Is there a Phobos function to compress all spaces to just one space in a
 string?

 E.g. " foo   bar             "
 becomes: " foo bar "

import std.string; void main() { assert(" foo bar ".squeeze() == " fo bar "); }

Yikes! I didn't even notice it squeezes *all* duplicates. You see in my original code I just wanted extra spaces removed, not the chars themselves. So the right call is: squeeze(" ")
Feb 21 2012