如何把字符串 "2+3" 转成数学表达式 2+3?

fish365 2002-08-13 09:24:28
或者是计算字符串“A+B” 的结果,
A,B是变量名, 比如 A=2,B=3 ,结果应该是 5,
我觉的有难度,所以来求教大家!
...全文
35 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fourfire29 2002-08-13
  • 打赏
  • 举报
回复
二叉树
delphi888 2002-08-13
  • 打赏
  • 举报
回复
你可以用栈实现
cometsky 2002-08-13
  • 打赏
  • 举报
回复
补充一下,那个软件(我不确认名字)能够让你自定义表达式的语法结构,然后他能够生成用来解析表达式字符串的C#代码,但是其中的具体运算还需要你来提供函数。

比如你说的 "1+2" ,他生成的代码能够解析成 1+2 ,但具体的加法有你自己来算。
saucer 2002-08-13
  • 打赏
  • 举报
回复
Runtime C# Expression Evaluator
http://www.codeproject.com/csharp/runtime_eval.asp
cometsky 2002-08-13
  • 打赏
  • 举报
回复
我在网上看到过一个叫Visual Parse ++ 的软件好像是用来分析表达式的。
cometsky 2002-08-13
  • 打赏
  • 举报
回复
我在网上看到过一个叫Visual Parse ++ 的软件好像是用来分析表达式的。
juqiang 2002-08-13
  • 打赏
  • 举报
回复
我认为可以使用reflection来实现,其实,好像和什么编译原理有关吧?
juqiang 2002-08-13
  • 打赏
  • 举报
回复
楼上的有两个错误:
1、SubString的index不对,C#中,字符串索引是从1开始的,不是从0开始的。
2、即使上面的SubString正确,得到的也是A和B,ToInt32("A"+"B")之后,会throw exception的!

hbxtx 2002-08-13
  • 打赏
  • 举报
回复
string c="A+B";
Convert.ToInt32(c.Substring(0,1))+Convert.ToInt32(c.Substring(2,1))
fish365 2002-08-13
  • 打赏
  • 举报
回复
saucer(思归)提供的资料很有用!谢了
fish365 2002-08-13
  • 打赏
  • 举报
回复
比如你说的 "1+2" ,他生成的代码能够解析成 1+2

具体这个如何解析??
vazi 2002-08-13
  • 打赏
  • 举报
回复
因为C#是编译后执行的,所以应该不支持类似JavaScript等解释执行语言中的宏替换功能。
使用.NET中的Hash Table类或许可以部分解决你遇到的问题。
Value["A"] = A;
Value["B"] = B;
if (expression.IndexOf("+") != -1)
Value[expression.substring(0,1)] + Value[expression.substring(3,1)]

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧