-1

这是我的问题:我有一个字符串,它是一个表达式。该表达式包含数值常量、变量、数学和逻辑运算符。例如:4*A&&B,X+5>Y。另外,我有一个翻译图(String->String),它基本上翻译变量。

需要的输出是翻译后的表达式。由于此示例,简单替换失败:表达式为 A&&X,其中 A -> XX,X->B。从 A 开始的简单替换导致表达式为 XX&&X,然后在替换 XI 时得到 BB&B,其中预期输出应为 XX&B。

有什么建议么?

编辑:我想一个可能的解决方案是编写一个表达式编译器,它知道将表达式解析为原子单元,以后我可以替换它。我只是想知道是否有更简单的解决方案

4

1 回答 1

0

定义“更简单的解决方案”。

将表达式解析为原子单元(为了能够恢复运算符,不要使用String.split()- 使用PatternMatcher而是使用 (from java.util.regex))很简单,并且会起作用。

为了提高效率,您必须编写某种词法分析器,这样简单性就会飞出窗外。

于 2012-11-26T08:32:37.057 回答