当前位置: 首页 > news >正文

做网站品免费申请网站com域名

做网站品,免费申请网站com域名,网页截图快捷键可拉动,企业管理软件的发展趋势近期在做一个项目#xff0c;涉及到一些简单的规则匹配。规则的判定条件可以用关系表达式描述#xff0c;形如(P1|P2)(P3|P4)。其中是与#xff0c;|是或#xff0c;P1-P4是Pattern#xff0c;具体的匹配条件#xff0c;返回值是True或者False。为计算此表达式…近期在做一个项目涉及到一些简单的规则匹配。规则的判定条件可以用关系表达式描述形如(P1|P2)(P3|P4)。其中是与|是或P1-P4是Pattern具体的匹配条件返回值是True或者False。为计算此表达式的值采用中序转后序再计算表达式的值。 1. 后序表达式的生成 中序表达式转后序表达式算法 1. 用|()对原表达式进行拆分得到ListString。2. 从前往后遍历该List    1如果是一个pattern则入栈。    2如果是左括号(也入栈。    3如果是右括号        a如果此时栈为空则表示表达式解析异常报警并退出。        b如果栈不为空则依次pop栈顶元素直到匹配到左括号(。如果没有左括号(的匹配则表达式依次报警并退出。    4如果是和|        a如果栈为空直接入栈。        b如果栈不为空依次出栈直到匹配左括号左括号不出栈。再把操作符入栈。3、所有的pattern和操作符都入栈以后把栈中所有元素依次出栈就得到后序表达式。参考代码 ListString postfix new ArrayListString(); StackString stack new StackString(); String delims |(); // 支持的操作符 StringTokenizer st new StringTokenizer(rule, delims, true); while (st.hasMoreTokens()) {String tk st.nextToken();if (!delims.contains(tk)) {// pattern直接入栈postfix.add(tk);} else if (tk.equals(()) {// 左括号入栈stack.push(tk);} else if (tk.equals())) {if (stack.empty()) {// 碰到右括号如果栈为空解析异常throw new RuleException(parseRule Error!);}String val stack.pop();// 如果栈不为空依次出栈直到匹配左括号while (!val.equals(()) {postfix.add(val);if (!stack.empty()) {val stack.pop();} elsebreak;}if (stack.empty() !val.equals(()) {// 如果匹配不到左括号解析异常throw new RuleException(parseRule Error!);}} else if (tk.equals() || tk.equals(|)) {if (stack.empty()) {// 碰到操作符如果栈空则直接入栈stack.push(tk);} else {// 如果栈不为空依次出栈直到匹配左括号while (!stack.empty() !stack.lastElement().equals(()) {postfix.add(stack.pop());}// 操作符入栈stack.push(tk);}} }// 所有的pattern和操作符匹配完毕把堆栈中还有的数据依次出栈 while (!stack.empty()) {postfix.add(stack.pop()); }System.out.println(Original Rule rule); System.out.println(Postfix Rule: postfix.toString());   2. 后序表达式的计算 后序表达式的计算算法 1. 从前往后遍历中序表达式    1如果是|操作符则pop两个字段r1和r2计算r1r2或r1|r2的值r3并将r3入栈。    2如果是pattern则计算pattern的匹配结果True Or False并将结果入栈。2、中序表达式便利完毕栈中只有1个元素即为表达式结果。 参考代码 StackBoolean stack new StackBoolean(); for (String str : this.postfix) {if (str.equals()) {// pop两个pattern计算boolean r1 stack.pop();boolean r2 stack.pop();stack.push(r1 r2);} else if (str.equals(|)) {// pop两个pattern计算boolean r1 stack.pop();boolean r2 stack.pop();stack.push(r1 || r2);} else {// 计算pattern的值并push到stackPattern ptn this.patterns.get(str);stack.push(ptn.judge(fact));} }if (stack.size() 1) {return stack.pop(); } else {throw new RuleException(judge failed: postfix error!); }  转载于:https://www.cnblogs.com/simplestupid/p/4771892.html
http://wiki.neutronadmin.com/news/165479/

相关文章:

  • 期货做程序化回测的网站e脉通网站
  • 公司网站内容建设项目建设目标怎么写
  • 哈密网站制作公司-哈密网站建设|哈密网络公司|哈密做网站模板网站建设全过程
  • 南京医院网站建设方案上海网站开发技术最好公司
  • 非织梦做的网站能仿吗郑州手机网站推广公司
  • 云盘做网站有没有教给做宝宝衣服的网站
  • 大学《网站开发与应用》试题wordpress主题文章页面不显示图片
  • 127.0.0.1 wordpress广州网站优化工具
  • 国外有在线做设计方案的网站吗北京建设工程交易网
  • 网站建设首页模板下载手机关联网站
  • 哪里有学习做网站的查看别人wordpress主题
  • 北京 网站开发北京网站整站优化
  • wordpress 三站合一企业标识系统
  • 我想建设一个网站广西一站网网络技术集团有限公司
  • 如何做一个自己的网站四川省建筑人员证书查询
  • 电商平台建站建站网站平台
  • 做设计兼职的网站腾讯云wordpress安装
  • 网站的营销与推广必应搜索引擎网站
  • 做网站采集内容wordpress屏蔽外国ip
  • 湖北建设工程造价协会网站深圳做手机网站设计
  • 网站设计说明书主要有什么开网站需要什么流程
  • 招聘网站建设方案模板周口seo公司
  • 网站ip地址 转向域名哈尔滨网站建设方案
  • 忻州市住房城乡建设局网站写网站编程需要什么
  • 温州瓯海建设局网站百度推广优化是什么意思
  • 太原哪家网站建设公司好最近三天的国内新闻
  • 南京网站制作系统东莞市住建局官网
  • 个人网站开发与设计摘要广告优化师是干嘛的
  • 网站开发公司专业南通市港闸区城乡建设局网站
  • 查网站服务器速度wordpress 无法显示