Re: Removing whitespace duplicates

2014-10-22 Thread Nordlöw

On Tuesday, 21 October 2014 at 08:04:13 UTC, bearophile wrote:
If your text is ASCII, then there is std.ascii.whitespace that 
can be given as argument to std.string.tr.


Bye,
bearophile


http://dlang.org/phobos/std_ascii.html#.whitespace

is of string but

std.string.tr needs [string] as argument.

How does that work?


Re: Removing whitespace duplicates

2014-10-22 Thread via Digitalmars-d-learn

On Wednesday, 22 October 2014 at 19:00:36 UTC, Nordlöw wrote:

On Tuesday, 21 October 2014 at 08:04:13 UTC, bearophile wrote:
If your text is ASCII, then there is std.ascii.whitespace that 
can be given as argument to std.string.tr.


Bye,
bearophile


http://dlang.org/phobos/std_ascii.html#.whitespace

is of string but

std.string.tr needs [string] as argument.

How does that work?


string a = test \t \t test;

writeln(a.tr(std.ascii.whitespace,_,s));


Re: Removing whitespace duplicates

2014-10-21 Thread Nordlöw

On Monday, 20 October 2014 at 23:25:18 UTC, bearophile wrote:

But with tr you can also replace the spaces with the underscore.


std.string.tr is my preferred choice here :)

Thanks!


Re: Removing whitespace duplicates

2014-10-21 Thread Nordlöw

On Tuesday, 21 October 2014 at 07:31:59 UTC, Nordlöw wrote:

std.string.tr is my preferred choice here :)


It would be nice to have a lambda-variant of std.string.tr to 
call like


x.tr!isWhite(['_'])


Re: Removing whitespace duplicates

2014-10-21 Thread bearophile via Digitalmars-d-learn

Nordlöw:

It would be nice to have a lambda-variant of std.string.tr to 
call like


x.tr!isWhite(['_'])


If your text is ASCII, then there is std.ascii.whitespace that 
can be given as argument to std.string.tr.


Bye,
bearophile


Re: Removing whitespace duplicates

2014-10-20 Thread Nordlöw

On Monday, 20 October 2014 at 20:27:19 UTC, Nordlöw wrote:

line.strip.splitter!isWhite.joiner(_).to!string


Doh, that was too easy:

line.strip.splitter!isWhite.filter!(a = 
!a.empty).joiner(lineSeparator).to!S;


Sorry, for being lazy ;)


Re: Removing whitespace duplicates

2014-10-20 Thread bearophile via Digitalmars-d-learn

Nordlöw:


How can I extend

string line = carwash;

line.strip.splitter!isWhite.joiner(_).to!string

so that

car   wash

becomes

car_wash

and not

car___wash

?


Use std.string.tr.

Bye,
bearophile


Re: Removing whitespace duplicates

2014-10-20 Thread Justin Whear via Digitalmars-d-learn
On Mon, 20 Oct 2014 22:21:09 +, bearophile wrote:

 Use std.string.tr.
 
 Bye,
 bearophile

std.string.squeeze might be more appropriate.


Re: Removing whitespace duplicates

2014-10-20 Thread bearophile via Digitalmars-d-learn

Justin Whear:


std.string.squeeze might be more appropriate.


But with tr you can also replace the spaces with the underscore.

Bye,
bearophile