Re: Removing whitespace duplicates
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
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
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
Justin Whear: std.string.squeeze might be more appropriate. But with tr you can also replace the spaces with the underscore. Bye, bearophile
Re: Removing whitespace duplicates
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
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
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
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
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"));