Я делаю программу, в которой вы можете рассчитать сумму. И получить из этого результат теперь, когда он работает, когда я запускаю оператор 1 + 1, но не без пробелов, таких как 1 + 1. Теперь я хочу, чтобы он работал в обоих случаях. Кто-нибудь может мне с этим помочь? Поскольку я не знаю, возможно ли это в моем коде.
Я подумал об удалении всех пробелов в моей строке, а затем о разделении каждого символа. Поэтому сначала замените (замените) все пробелы в вашей строке на string.Empty, а затем разделите на пустой символ.
Может быть, кто-то может мне помочь?
Это мой код
private char[] SPACE = new char[] { ' ' };
private void GetAnswer(string clipboardText)
{
//Loop through all questions and answers
foreach (question q in questionList)
{
//If we have found an answer that is exactly the same show an Notification
//Startwith zoekt naar alle vragen die matchen vanaf het begin van de zin en Endwith alle vragen die matchen vanaf het eind van de zin//
if (q._question.StartsWith(clipboardText) || q._question.EndsWith(clipboardText))
{
ShowNotification(q._question, q._answer);
break;
}
}
var parts = clipboardText.Split(SPACE);
var isValid = true;
Double a, b;
// Make sure it's format A # B
if (parts.Length != 3)
return;
// Parse first number
isValid = Double.TryParse(parts[0], out a);
if (!isValid)
return;
var validOperators = new char[] { '+', '-', ':', 'x' };
// Parse operator
if (parts[1].Length != 1)
return;
var op = parts[1][0];
if (!validOperators.Contains(op))
return;
// Parse 2nd number
isValid = Double.TryParse(parts[2], out b);
if (!isValid)
return;
// Now calculate the answer
string answer = null;
switch (op)
{
case '+':
answer = (a + b).ToString();
break;
case '-':
answer = (a - b).ToString();
break;
case ':':
if (b == 0)
answer = "NaN";
else
answer = (a / b).ToString();
break;
case 'x':
answer = (a * b).ToString();
break;
default:
throw new InvalidOperationException();
}
// Show the answer
ShowNotification(clipboardText, answer);
}