C# 如何将文本转换为算术表达式

C# 如何将文本转换为算术表达式,c#,algorithm,C#,Algorithm,我想用c语言构建文本库计算器# 假设我有文本 加二加三。它的算法 表达式将为(2+3) 五千二百加四 一百三十二除以三十 四个。((5200+430)/34) 加300万到700万 然后再加上五个 两个。((3000000+7000000)+5)+2) 等等 什么算法可以做到这一点?可能是您必须对文本进行解析。其思想是从字符串中找出标记(感兴趣的文本)。假设文本是Add two plus three,您可以找到单独的标记,假设您找到的标记是Add,two,plus,three。用预定义的数字替换

我想用c语言构建文本库计算器#

假设我有文本

加二加三。它的算法 表达式将为(2+3)

五千二百加四 一百三十二除以三十 四个。((5200+430)/34)

加300万到700万 然后再加上五个 两个。((3000000+7000000)+5)+2)

等等


什么算法可以做到这一点?

可能是您必须对文本进行解析。其思想是从字符串中找出标记(感兴趣的文本)。假设文本是Add two plus three,您可以找到单独的标记,假设您找到的标记是
Add,two,plus,three
。用预定义的数字替换令牌,例如令牌
two
=2
等等。用算术运算符替换算术文本,例如
Add=+
等等。最后执行计算出的表达式以获得结果。

可能需要对文本进行解析。其思想是从字符串中找出标记(感兴趣的文本)。假设文本是Add two plus three,您可以找到单独的标记,假设您找到的标记是
Add,two,plus,three
。用预定义的数字替换令牌,例如令牌
two
=2
等等。用算术运算符替换算术文本,例如
Add=+
等等。最后执行计算的表达式以得到结果。

到目前为止,您编写的代码是什么?我还没有编写代码,我只是在考虑实现此行为的算法。您将要面临的一个更重要的问题是字符串,如“加法五千二百到四百三十二除以三十四”这些都是模棱两可的。它可能意味着5200+(430/34)或(5200+430)/34。@Yaur我想所有操作员的操作顺序都是从左到右?这将解决歧义。到目前为止,您编写的代码是什么?我还没有编写代码,我只是在考虑实现这种行为的算法。您将要面临的一个更重要的问题是像“加法五千二百到四百三十二除以三十四”这样的字符串是歧义的。它可能意味着5200+(430/34)或(5200+430)/34。@Yaur我想所有操作员的操作顺序都是从左到右?这将解决模棱两可的问题