【发布时间】:2013-09-13 22:32:38
【问题描述】:
假设程序接收到输入字符串"8*10+6/2",在这种情况下应该输出83。如何处理运营商?
我可以将字符串切割成单独的字符串,然后检测它是数字还是运算符。如果是运算符,我可以将其转换为int。但我不知道如何处理运算符以便计算工作。
【问题讨论】:
标签: c# operator-keyword
假设程序接收到输入字符串"8*10+6/2",在这种情况下应该输出83。如何处理运营商?
我可以将字符串切割成单独的字符串,然后检测它是数字还是运算符。如果是运算符,我可以将其转换为int。但我不知道如何处理运算符以便计算工作。
【问题讨论】:
标签: c# operator-keyword
你可以使用DataTable.Compute-"trick":
double result = (double)new DataTable().Compute("8*10+6/2", null);
表达式中支持以下算术运算符:
+ (addition)
- (subtraction)
* (multiplication)
/ (division)
% (modulus)
更多信息在:DataColumn.Expression@表达式语法。
【讨论】:
if (string.equals("/")){use division...} else if (str.equals("*")... 做一些诡计。这取决于这是从编程入门课程还是 C# 语言课程的练习。您也可以尝试使用 char 比较和 switch 语句。确切的实施在您的能力范围内。祝你好运! :)