非常简单的问题,今天我的大脑被冻结了,所以我想不出一个我知道存在的优雅解决方案。
我有一个以“A+B”形式传递给我的公式
我也有公式变量到它们的“可读名称”的映射。
最后,我有一个公式解析器,它将计算公式的值,但前提是它与变量的可读名称一起传递。
例如,作为我得到的输入
String formula = "A+B"
String readableA = "foovar1"
String readableB = "foovar2"
我希望我的输出是“foovar1+foovar2”
简单的查找和替换的问题在于它很容易被破坏,因为我们无法保证“可读”名称是什么。假设我用不同的参数再次举我的例子
String formula = "A+B"
String readableA = "foovarBad1"
String readableB = "foovarAngry2"
如果我在循环中进行简单的查找和替换,我最终将替换我已经替换的可读名称中的大写字母 A 和 B。
这看起来像一个近似的解决方案,但我的变量周围没有括号