C # Tokenizer - сохраняя разделители [дубликаты]

На этот вопрос уже есть ответ:

Есть ли в C # токенайзер строк, как в Java? 11 ответов

Я работаю над переносом кода из JAVA в C #, и часть кода JAVA использует токенизатор - но, насколько я понимаю, результирующий массив из stringtokenizer в Java также будет иметь разделители (в данном случае +, -, /, *, (,)) как токены. Я пытался использовать функцию C # Split (), но, похоже, устраняет сами разделители. В конце концов, это проанализирует строку и запустит ее как вычисление. Я провел много исследований и не нашел ссылок на эту тему.

Кто-нибудь знает, как получить фактические разделители в том порядке, в котором они встречались, в массиве split?

Код для токена:

public CalcLexer(String s)
{
    char[] seps = {'\t','\n','\r','+','-','*','/','(',')'};
    tokens = s.Split(seps);
    advance();
}

Testing:

static void Main(string[] args)
    {
        CalcLexer myCalc = new CalcLexer("24+3");
        Console.ReadLine();
    }

«24 + 3» приведет к следующему выводу: «24», «3» Я ищу вывод «24», «+», «3»

В сущности полного раскрытия, этот проект является частью назначения класса и использует следующий полный исходный код:

http: //www.webber-labs.com/mpl/source%20code/Chapter%20Seventeen/CalcParser.java.tx http: //www.webber-labs.com/mpl/source%20code/Chapter%20Seventeen/CalcLexer.java.tx

Ответы на вопрос(3)

Ваш ответ на вопрос