【发布时间】:2016-08-16 20:00:14
【问题描述】:
我有一个字符串,其中包含由加法、减法、乘法、除法符号等分隔的数字,例如:
"1+2*3"="7"。
符号的最大数量可以是两个。我想将此字符串计算为算术运算。我怎样才能做到这一点?我目前的想法是将这个字符串拆分成一个列表,然后使用算术运算的正常顺序计算结果。
【问题讨论】:
-
请您发布您到目前为止所尝试的内容...
-
你真的不希望它出现在列表中。一个简单而有效的方法是使用 Shutting Yard 算法来完成您的要求。见stackoverflow.com/questions/29634992/…
-
您可以使用正则表达式来捕获数字,例如
(\d)适合您,请查看以下链接regex101.com/r/kP9iX9/1 -
您说“一旦我将此字符串放入列表中,我就可以使用正常的算术顺序计算结果”,但不,您不能。您需要在示例中的加法之前进行乘法运算。您需要一个树结构来评估数学表达式。
-
那么无论谁对答案投了反对票,你能解释一下原因吗?