Get indexes of character in array

Dmitry Olshansky dmitry.olsh at gmail.com
Wed Mar 28 01:04:52 PDT 2012


On 28.03.2012 10:42, Andrej Mitrovic wrote:
>> 3/28/12, Andrej Mitrovic<andrej.mitrovich at 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


More information about the Digitalmars-d-learn mailing list