On 28.03.2012 10:42, Andrej Mitrovic wrote:
3/28/12, Andrej Mitrovic<andrej.mitrov...@gmail.com>  wrote:
I'd like to get a list of indexes into an array that matches a character.
E.g.:

"a foo a bar a".indexes("a") == [0, 6, 12]

Hah I even managed to screw up that "bar" has an 'a' there. Anywho
this works just fine:

size_t[] indexes(string input, dchar target)
{
     size_t[] result;
     foreach (index, dchar ch; input)
     {
         if (ch == target)
             result ~= index;
     }
     return result;
}

The cool thing about the foreach loop is that 'index' will point to
the exact code point of the target (it won't just be incremented by +1
on each loop).

Piece of cake indeed.
Just use Appender + put for building arrays in future, it's becoming military grade soon:
 https://github.com/D-Programming-Language/phobos/pull/502

--
Dmitry Olshansky

Reply via email to