我将字符串表达式“ 1 加 1 减 2 加 2 减 2 减 5 加 10 ”定界。收集字符串 [] 中的标记并开始编写行话。1加1减2加2减2减5加10=5
public int Calculate(string expression)
{
//TODO: implement this
if (string.IsNullOrEmpty(expression))
return 0;
//expression = "100 plus 100 minus 200";
string[] tokens = expression.Split();
int i= 0;
int result=0;
for (; i < tokens.Length; )
{
int a = 0;
int b = 0;
if (i < 1)
{
a = int.Parse(tokens[i]);
i++;
}
else if (i % 2 != 0 && tokens[i].ToString() == "plus")
{
i++;
b = int.Parse(tokens[i]);
a = result;
result = a + b;
i = i + 2;
}
if (tokens[i].ToString() == "plus")
{
i++;
b = int.Parse(tokens[i]);
result += a + b;
i = i + 2;
}
else if(i>1)
{
a = result;
b = int.Parse(tokens[i]);
result = a - b;
i=i+1;
}
else
{
i++;
//a = result;
b = int.Parse(tokens[i]);
result += a - b;
i++;
}
}
return result;
}
它计算了一些基本的计算操作,但停留在上面提到的字符串操作上。我需要通过执行计算从标记化的字符串中返回整数值有人可以建议我更好的解决方案吗?