C#如何检测字符串中的运算符进行计算?

C#如何检测字符串中的运算符进行计算?,c#,operator-keyword,C#,Operator Keyword,假设一个程序接收到一个输入字符串“8*10+6/2”,在这种情况下应该输出83。如何处理操作员 我可以将字符串切分为单独的字符串,然后检测它是数字还是运算符。如果是运算符,我可以将其转换为int。但我不知道如何处理运算符,以便计算正常。您可以使用“技巧”: 表达式中支持以下算术运算符: + (addition) - (subtraction) * (multiplication) / (division) % (modulus) 更多信息请参见:at表达式语法。您尝试过什么吗?正则表达式和字符

假设一个程序接收到一个输入字符串
“8*10+6/2”
,在这种情况下应该输出
83
。如何处理操作员

我可以将字符串切分为单独的字符串,然后检测它是数字还是运算符。如果是运算符,我可以将其转换为
int
。但我不知道如何处理运算符,以便计算正常。

您可以使用“技巧”:

表达式中支持以下算术运算符:

+ (addition)
- (subtraction)
* (multiplication)
/ (division)
% (modulus)

更多信息请参见:at表达式语法。

您尝试过什么吗?正则表达式和字符串拆分是您的朋友:)听起来是一个不错的选择。@JhonAlx:regex和字符串拆分在这里绝对不是您的朋友。编写(或搜索)解析器将是一种更容易处理事情的方法。@Jeroenvanevel我之所以这么说,是因为我从事过类似TopCoder培训的工作。由于问题陈述,我的解决方案没有运算符优先级分析,但通过一些工作,它会起作用:)John Ryann,@Tim Schmelter的答案是你在现实生活中会用到的,但对于学校来说,他们可能希望你用
if(string.equals(“/”){use division…}else if(str.equals(“*”)做一些小动作…
。这取决于这是编程入门课程还是C语言课程的练习。你也可以尝试使用字符比较和switch语句。具体实现在你的能力范围内。祝你好运!:)这个答案省去了这个问题+1.
+ (addition)
- (subtraction)
* (multiplication)
/ (division)
% (modulus)