sort strings by interpreting them as integrals

bearophile bearophileHUGS at lycos.com
Sun Jul 29 19:15:02 PDT 2012


Andrej Mitrovic:

> void main()
> {
>     string[] x = ["_100", "_10", "_20"];
>     sort(x);
>     writeln(x);
> }
>
> result:
> ["_10", "_100", "_20"]
>
> I need to treat these as if they were integrals, although the
> underscore complicates things here since it should be ignored. 
> So the
> result I want is:
> ["_10", "_20", "_100"]


import std.stdio, std.algorithm, std.conv;
void main() {
     auto data = ["_100", "_10", "_20"];
     schwartzSort!(s => to!int(s[1 .. $]))(data);
     writeln(data);
}


Bye,
bearophile


More information about the Digitalmars-d-learn mailing list