求助兄弟们,求值复杂表达式,麻烦给些思路[是不是又得编辑复杂正则表达式?] 本帖最后由 toss3000 于 2011-05-16 09:13:51 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问题补充,其中的[[x]]、[[y]]等要转换为map中对应x、y的值,比如4、5 楼主,这东西比较复杂。if(([[x]]-[[y]])>0,500,400)对于检测这个,我一上来想到用正则表达式。如果仅如这样,用也可以。可是问题是,if里面的两个逗号隔开的三个表达式,也可以是很复杂的,并且也可以嵌套if表达式。如果是这样的话,用正则表达式貌似较难定位。建议你先去看看用栈如何实现四则运算加括号的计算,比如:(1+2)*3-4/5。只不过你这里多了一种运符if(,,)。但是原理还是用栈进行计算。 看上去类似于3目运算符?:((x-y)>0?500:400)+x/z+((y-z+d)>0?200:100)+y java中转型问题 请给于点关怀 关于串口问题 急!!!!! java编程思想的第3章的一道练习 急! 在tomcat中怎么关闭线程 如何判断2004-02-34的正确性(在转换成日期时) 画布重画的问题 这个地方,这样子初始化对不对 Java中如何调用dos命令,比如Copy??? 为什么出现在一台机器上用jbuilder7开发的程序在另外机器运行出现乱码? 为石磨提示不能解释write mysql求修改语句 一个关于哈希表的问题。。。求解。。。
if(([[x]]-[[y]])>0,500,400)
对于检测这个,我一上来想到用正则表达式。如果仅如这样,用也可以。可是问题是,if里面的两个逗号隔开的三个表达式,也可以是很复杂的,并且也可以嵌套if表达式。如果是这样的话,用正则表达式貌似较难定位。
建议你先去看看用栈如何实现四则运算加括号的计算,比如:(1+2)*3-4/5。只不过你这里多了一种运符if(,,)。但是原理还是用栈进行计算。
((x-y)>0?500:400)+x/z+((y-z+d)>0?200:100)+y