On Friday, 4 March 2022 at 02:36:35 UTC, Ali Çehreli wrote:

I assumed it would generate separate integers 123 and 456. I started to implement a range with findSkip, findSplit, and friends but failed. :/

I worked on it a little. I guess it's better that way. But I didn't think about negative numbers.
```d
auto splitNumbers(string str) {
  size_t[] n;
  int i = -1;
  bool nextNumber = true;

  foreach(s; str)
  {
    if(s >= '0' && s <= '9')
    {
      if(nextNumber)
      {
        i++;
        n.length++;
        nextNumber = false;
      }
      n[i] = 10 * n[i] + (s - '0');
    }
    else nextNumber = true;
  }
  return n;

} unittest {

  auto n = splitNumbers(" 1,23, 456\n\r7890...");
  assert(n[0] == 1Lu);
  assert(n[1] == 23Lu);
  assert(n[2] == 456Lu);
  assert(n[3] == 7890Lu);
}
```
Presumably, D has more active and short possibilities. This is what I can do that making little use of the library.

Thank you...

SDB@79

Reply via email to