У меня есть строка, например, " число1 <= число2 && число3> число4 || число2 = число4 " и список операторов имеет вид -
var operators = new List<string> {"=", "!", "<", ">", ">=", "<=", "!=","||","&&"};
Таким образом, ожидание необходимо ввести один пробел до и после оператора в строке.
" номер1 <= номер2 && номер3> номер4 || номер2 = номер4 "
Я попробовал следующую опцию, но она не работает в случае, например. <,> =
public static string AddSpaceBeforeAndAfterOperator(string expression)
{
var operators = new List<string> {"=", "!", "<", ">", ">=", "<=", "!=", "||", "&&"};
foreach (var op in operators)
{
var index = expression.IndexOf(op, StringComparison.Ordinal);
if (index >= 0)
{
if (expression.Substring(index - 1) != " ")
{
expression = expression.Insert(index-1, " ");
}
expression = expression.Insert(index + op.Length + 1, " ");
}
}
return expression;
}
Примечание: список операторов будет случайным.
Любая помощь приветствуется!