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

贺州网站制作微信与与网站建设

贺州网站制作,微信与与网站建设,网站做视频网站,建筑业招聘网站使用递归和解释器模式 程序结构设计具体实现1. 先上最重要的实现类#xff1a;ExpressionParser#xff08;最重要#xff09;2. 再上上下文测试代码#xff1a;Context#xff08;程序入口#xff0c;稍重要#xff09;3. 使用到的接口和数据结构#xff08;不太重要的… 使用递归和解释器模式 程序结构设计具体实现1. 先上最重要的实现类ExpressionParser最重要2. 再上上下文测试代码Context程序入口稍重要3. 使用到的接口和数据结构不太重要的结构封装3.1 interface3.1.1 NumberExpression3.1.2 四则运算Expression实现类3.1.2.1 AddExpression3.1.2.2 SubtractExpression3.1.2.3 MultiplyExpression3.1.2.4 DivideExpression 程序结构设计 Context 编写测试代码 expression Expression interface 四则运算Expression implement NumberExpression implement ExpressionParser 核心实现类 具体实现 1. 先上最重要的实现类ExpressionParser最重要 package com.example.demo;import com.example.demo.expression.*;import java.util.regex.Matcher; import java.util.regex.Pattern;public class ExpressionParser {private String input;private int index;public ExpressionParser(String input) {this.input input.replaceAll(\\s, ); // 移除空格this.index 0;}public Expression parse() {return parseExpression();}private Expression parseExpression() {Expression left parseTerm();while (index input.length()) {char operator input.charAt(index);if (operator || operator -) {index;Expression right parseTerm();if (operator ) {left new AddExpression(left, right);} else {left new SubtractExpression(left, right);}} else {break;}}return left;}private Expression parseTerm() {Expression left parseFactor();while (index input.length()) {char operator input.charAt(index);if (operator * || operator /) {index;Expression right parseFactor();if (operator *) {left new MultiplyExpression(left, right);} else {left new DivideExpression(left, right);}} else {break;}}return left;}private Expression parseFactor() {if (index input.length()) {char currentChar input.charAt(index);if (Character.isDigit(currentChar)) {return parseNumber();} else if (currentChar () {index;Expression expression parseExpression();if (index input.length() input.charAt(index) )) {index;return expression;} else {throw new IllegalArgumentException(Mismatched parentheses);}}}throw new IllegalArgumentException(Invalid expression);}private Expression parseNumber() {Pattern numberPattern Pattern.compile(\\d);Matcher matcher numberPattern.matcher(input.substring(index));if (matcher.find()) {String numberStr matcher.group();index numberStr.length();return new NumberExpression(Integer.parseInt(numberStr));} else {throw new IllegalArgumentException(Invalid number);}} } 2. 再上上下文测试代码Context程序入口稍重要 package com.example.demo;import com.example.demo.expression.Expression;public class Context {public static void main(String[] args) {String inputExpression (3 55) * 2 - 4 / 2;ExpressionParser parser new ExpressionParser(inputExpression);Expression expression parser.parse();int result expression.interpret();System.out.println(Result: result);} } 3. 使用到的接口和数据结构不太重要的结构封装 3.1 interface package com.example.demo.expression;public interface Expression {int interpret(); }3.1.1 NumberExpression package com.example.demo;import com.example.demo.expression.Expression;public class NumberExpression implements Expression {private int number;public NumberExpression(int number) {this.number number;}Overridepublic int interpret() {return number;} }3.1.2 四则运算Expression实现类 3.1.2.1 AddExpression package com.example.demo.expression;public class AddExpression implements Expression {private Expression left;private Expression right;public AddExpression(Expression left, Expression right) {this.left left;this.right right;}Overridepublic int interpret() {return left.interpret() right.interpret();} }3.1.2.2 SubtractExpression package com.example.demo.expression;// 非终结符表达式减法表达式 public class SubtractExpression implements Expression {private Expression left;private Expression right;public SubtractExpression(Expression left, Expression right) {this.left left;this.right right;}Overridepublic int interpret() {return left.interpret() - right.interpret();} }3.1.2.3 MultiplyExpression package com.example.demo.expression;// 非终结符表达式乘法表达式 public class MultiplyExpression implements Expression {private Expression left;private Expression right;public MultiplyExpression(Expression left, Expression right) {this.left left;this.right right;}Overridepublic int interpret() {return left.interpret() * right.interpret();} }3.1.2.4 DivideExpression package com.example.demo.expression;// 非终结符表达式除法表达式 public class DivideExpression implements Expression {private Expression left;private Expression right;public DivideExpression(Expression left, Expression right) {this.left left;this.right right;}Overridepublic int interpret() {int divisor right.interpret();if (divisor ! 0) {return left.interpret() / divisor;} else {throw new ArithmeticException(Division by zero);}} }
http://www.eeditor.cn/news/123320/

相关文章:

  • 网站建设规划书万能互联网营销策划方案
  • 建站网站建设哪个好万网网站空间
  • 开源网站内容管理系统哈尔滨网站设计快速建站
  • 网站建设外文文献翻译网站统计开放平台
  • 电影网站模板html不用流量的地图导航软件
  • 做网站侵权培训网站建设方案模板
  • 淮北建网站费用基金网站模板
  • 南通网站建设心得徽章设计制作小程序
  • 山东网站开发网络公司国家工商网企业查询官网
  • 阿里巴巴网站广告怎么做wordpress插件卸载
  • 上海营销型网站标准app网站开发框架
  • 哈尔滨做网站哪家好广州番禺职业技术学院
  • 大型门户网站开发费用上海网页设计公司山东济南兴田德润简介
  • 网站菜单导航制作教程哈尔滨关键词优化效果
  • 昆明网站建设一条龙服务广州住房和建设局网站
  • 手机网站在后台怎么做编辑什么网站ghost做的好
  • 做网站赤峰怎么制作网站封面
  • 投资公司网站模板郑州关键词网站优化排名
  • 北京定制网站建设公司学校网站建设 效果
  • 网站设计合同网页版游戏排行榜枪
  • 做网站复杂吗wordpress页面半透明
  • 泰和县城乡建设局网站wordpress 多主题插件
  • 下载建设银行官方网站下载安装做静态网站接单
  • 做网站要收订金吗电子购物网站建设
  • 上海网站建设公司联系方式网站上的图文介绍怎么做的
  • 临安市住房和建设局网站建筑公司取名参考
  • 陕西做网站电话男女做羞羞的事视频网站
  • 公司网站建设建议网上下载的html模板怎么修改
  • 建设银行网站的安全措施门户网站建设询价公告
  • 徐州如何选择网站建设福建省建设执业注册与管理中心网站