Task to throw away string parts, use joiner and splitter not very successful

Dfr deflexor at yandex.ru
Tue Dec 31 23:40:39 PST 2013


And one more problem here:

     string name = "test";
     auto nameparts = splitter(name, '.');
     writeln(typeof(joiner(nameparts, ".").array).stringof);

This prints "dchar[]", but i need char[] or string, how to get my 
'string' back ?


On Tuesday, 31 December 2013 at 20:49:55 UTC, Dfr wrote:
> Hello, i have string like "this.is.a.string" and want to throw 
> away some parts separated by dots, here is first attempt:
>
> name = "this.is.a.string"; // <-- want to make "this.is.a" from 
> this
> auto nameparts = splitter(name, '.');
> auto name1 = joiner(nameparts[0 .. $-1], '.');
>
> And got this error: "Error: Result cannot be sliced with []"
>
> So, kinda fixed it (correct way?):
>
> name = "this.is.a.string";
> auto nameparts = splitter(name, '.').array;
> auto name1 = joiner(nameparts[0 .. $-1], '.');
>
> got this:
>
> Error: template std.algorithm.joiner does not match any 
> function template declaration. Candidates are:
> /usr/include/dmd/phobos/std/algorithm.d(2846):        
> std.algorithm.joiner(RoR, Separator)(RoR r, Separator sep) if 
> (isInputRange!RoR && isInputRange!(ElementType!RoR) && 
> isForwardRange!Separator && is(ElementType!Separator : 
> ElementType!(ElementType!RoR)))
>
> Stuck here, thank you for any help.



More information about the Digitalmars-d-learn mailing list