请问如何验证一个表达式是否有效?

xucb 2002-09-11 11:37:26
请问如何验证一个表达式是否有效,如表达式2+3×4.1)则无效?
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

...全文
26 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xucb 2002-09-12
  • 打赏
  • 举报
回复
现在面临的问题是如何对非法的表达式进行有效性检验,直接通过sql语句没办法解决?
whiteclude 2002-09-12
  • 打赏
  • 举报
回复
当然,如果你想用这样的办法对非法的表达式找出它哪里非法是不可能的。
看看这个:
http://www.csdn.net/expert/topic/999/999158.xml?temp=.6719171
xucb 2002-09-11
  • 打赏
  • 举报
回复
那sql server 中使用什么表?
wjmmml 2002-09-11
  • 打赏
  • 举报
回复
dual
是oracle数据库里的系统临时表。
xucb 2002-09-11
  • 打赏
  • 举报
回复
这种方法对表dual有什么要求,我用sql server 测试,表中没有记录则不返回值,表中有几条记录则返回几个计算结果,另外无法判断表达式的正确与否?表达式为(3++*6-9)则不会执行
whiteclude 2002-09-11
  • 打赏
  • 举报
回复
给个捷径,把这个表达式作为 sql 语句的一部分提交给数据库,查询有结果说明表达式合法。比如 :
select ( 2+3*4.1 ) as result from dual
result 14.3

select ( 2+-+3*4.1 ) as result from dual
null
whiteclude 2002-09-11
  • 打赏
  • 举报
回复
表是随便拉,当然最好别用系统表吧,怕万一有个闪失,呵呵,就自己建个临时表。里面的字段随便,当然最关键的是,里面至少有一条记录,而且最好是只有一条记录,为什么?自己试试就知道了
babyfu 2002-09-11
  • 打赏
  • 举报
回复
好有趣,以后我也知道这么用了
whiteclude 2002-09-11
  • 打赏
  • 举报
回复
呵呵,其实有些你意想不到的地方用你意想不到的办法处理的,^L^
namowen 2002-09-11
  • 打赏
  • 举报
回复
怎么觉得这种做法有些剑走偏锋呢?:)
Kyle-soft 2002-09-11
  • 打赏
  • 举报
回复
不需要表名,直接select 1*2
返回2
Reve 2002-09-11
  • 打赏
  • 举报
回复
简单的还可以,如果真的要把所有的表达式都弄通的话,那就得干脆用Java的编译器了。
AngusZhang 2002-09-11
  • 打赏
  • 举报
回复
select ( 2+3*4.1 ),
result 14.3
你可以直接这样写,后边什么都不用跟.

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧