-3

假设一个程序接收到一个输入字符串"8*10+6/2"并且应该输出83,在这种情况下。如何处理运营商?

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

4

1 回答 1

7

你可以使用DataTable.Compute-"trick":

double result = (double)new DataTable().Compute("8*10+6/2", null);

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

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

更多信息请参见:DataColumn.Expression表达式语法

于 2013-09-13T22:36:15.427 回答