Как поместить пробелы между символами в выражениях?

Мне нужно, чтобы между "+ - * /" и т.д. помещался 1 пробел, но не трогал цифры и скобки, например:

ВВОД: (5+5 )   -  16  /   4
ВЫВОД: (5 + 5) - 16 / 4

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

Автор решения: aepot
string input = Console.ReadLine();
string output = input.Replace(" ", "");
foreach (char c in "+-*/")
{
    output = output.Replace($"{c}", $" {c} ");
}
Console.WriteLine(output);
(5+5 )   -  16  /   4
(5 + 5) - 16 / 4

Если нужна более глубокая логика форматирования, например с функциями или унарными знаками, то проще будет спарсить выражение в обратную польскую запись и затем отформатировать обратно. Что-то типа этого может помочь.

→ Ссылка