新手问题 如何计算字符串?

RKLNF · 2013年03月10日 · 最后由 luikore 回复于 2013年03月10日 · 1876 次阅读

例 str='1+2+3+4' 要想得到 10 的答案该如何操作 谢谢

eval 固然好用,但是比较危险。仅对于你举的这个例子,可以这样做。

str.split("+").inject(0) {|sum, n| sum + n.to_i}  # This line is only for `plus operator'

如果要支持四则运算 + 括号的效果,可以参考我写的一个解析器生成器 rsec 的例子:

https://github.com/luikore/rsec/blob/master/examples/arithmetic.rb

treetop 是流行程度高很多的另一个解析器生成器,它的首页上就有个做四则运算的例子

需要 登录 后方可回复, 如果你还没有账号请 注册新账号