当前位置: 首页 > 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.hkea.cn/news/14588135/

相关文章:

  • 怎样查找网站开发者清理wordpress option表
  • 做贺卡网站福田时代汽车官方网站
  • 古镇网站建设哪家好大型网站建设建站模板
  • 台州网站制作案例电子商务网站建设与维护03
  • 做 暧视频在线观看网站有关宠物方面的网站建设方案
  • 上海seo优化公司seo课培训
  • 个人建站公司大专动漫设计有出路吗
  • 单页网站制作 在线 支付嘉定做网站
  • 网站平台怎么做的好wordpress 调用GPS
  • 中小学校园网站建设自己架服务器做网站
  • 建网站买服务器株洲房产网
  • 哪些网站可以做微信邯郸房地产市场信息网
  • 建设银行积分兑换网站装修公司大全
  • 一个网站每年维护费用app模板下载网站模板
  • 做网站的职位叫什么问题滨州网站建设滨州
  • 上海网站备案审核时间建设部四库一平台网站
  • 苏州做网站要多少钱青岛网站建设情况
  • 机构类网站有哪些iis做网站视
  • 青海网站建设哪个最好二手车 东莞网站建设
  • 买网站送域名企业网站排名软件能优化
  • 建网站的每年有费用北京 企业展厅设计公司
  • c语言和c 哪个做网站好wordpress如何添加备案号
  • 海北公司网站建设哪家快网络技术专业就业方向
  • wordpress 响应式 框架百度网站优化方案
  • 免费手机网站建站ps软件下载手机版免费
  • 提供网站建设空间免费云电脑(可玩大型游戏)
  • 南通高端网站设计开发仿163ym源码交易平台网站源码
  • 做cpa广告网站教程客户网站加一个功能 应该怎么做
  • 微信上建微网站要钱吗驾校网上约车网站开发
  • 青岛旅游网站建设最便宜的购物网站排名