Отделение чисел и знаков в строке

Задача:
Написать калькулятор выражений.
Есть выражение: 3+6/87*120.
Я хочу сделать так, чтобы у меня получился строковый массив:
["3", "+", "6", "/", "87", "*", "120"].

Как это можно сделать?


Ответы (2 шт):

Автор решения: OXYGEN

Если я все правельно понял должно быть так :

на входе : string a = "3+6/87*120-100"; на выходе: ["3", "+", "6", "/", "87", "*", "120","-","100"]

сам код :

public string[] GetArr(string str)
    {
        var s = str.Split(new[] { '+', '/', '*', '-' });

        int size = s.Length + s.Length - 1;
        string[] arr = new string[size];
        for (int i = 0, j = 0; i < s.Length; i++, j = j + 2)
        {
            arr[j] = s[i];
            if (i != s.Length - 1)
            {
                int index = str.IndexOf(s[i], StringComparison.Ordinal);
                index = index + s[i].Length;
                arr[j + 1] = str[index].ToString();
            }
        }
        return arr;
    }
→ Ссылка
Автор решения: Qwertiy

https://ideone.com/jB9MFt

using System;
using System.Linq;
using System.Text.RegularExpressions;

public class Test
{
  public static void Main()
  {
    var s = "3+6/87*120";
    var tokens = Regex.Matches(s, @"[-+/*]|\d+").OfType<Match>().Select(m => m.Value).ToList();

    Console.WriteLine(String.Join("\n", tokens));
  }
}
→ Ссылка