это мой первый вопрос о калькуляторе, терпите меня. Я должен сделать кнопку, чтобы полностью изменить оператор плюс минус. Таким образом, 1 + 2-3 станет 1-2 + 3.
Я управлял простой строкой, такой как 1 + 2, в 1-2 и наоборот с помощью btnChangeOperator. Однако, когда я попытался 1 + 2-3 и хотел изменить это на 1-2 + 3, я получил 1 + 2 + 3, а затем 1-2-3.
Я попробовал сначала с регулярным выражением:
Regex pattern = new Regex("[+-]");
if (txtInput1.Text.Contains("-"))
{
txtInput1.Text = pattern.Replace(txtInput1.Text, "--");//jace can manage that, I also tried "+"
txtInput2.Text = pattern.Replace(txtInput2.Text, "+");
}
else if (txtInput1.Text.Contains("+"))
{
txtInput1.Text = pattern.Replace(txtInput1.Text, "+-");//jace can manage that, I also tried with "-"
txtInput2.Text = pattern.Replace(txtInput2.Text, "-");
}
Это работает только с 1 + 2 или 1-2 и 1 + 2 + 3 или 1-2-3, но не с 1 + 2-3 или 1-2 + 3. Я также пытался заменить, но это та же проблема:
if (txtInput1.Text.Contains("-"))
{
txtInput1.Text = txtInput1.Text.Replace("-", "+");
txtInput2.Text = txtInput2.Text.Replace("-", "+");
}
else if (txtInput1.Text.Contains("+"))
{
txtInput1.Text = txtInput1.Text.Replace("+", "-");
txtInput2.Text = txtInput2.Text.Replace("+", "-");
}
Я также попытался сначала перейти к математической арифметике, такой как + - / - + = - и - = +, а затем снова изменить на +/-. Но это не сработает, так как + - изменится на +. Я использую Jace сложение для расчета, что действительно приятно. Я думал также о случае коммутатора, но мне не удается это реализовать.
Может ли кто-то указать мне правильное направление, поскольку сложность заключается в том, что плюс может быть минусом, но в моем коде он снова изменится непосредственно на плюс.
Спасибо.
редактирование:
Я использовал ответ Джо Филлипса, который так прост и приятен: операторы if, а всего 1 строка кода (ну, 2, потому что у меня 2 txtFields).
txtInput1.Text = txtInput1.Text.Replace("+", "p").Replace("-", "+").Replace("p", "-");
txtInput2.Text = txtInput2.Text.Replace("+", "p").Replace("-", "+").Replace("p", "-");
Спасибо всем.