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

传奇私服的网站怎么做福建seo关键词优化外包

传奇私服的网站怎么做,福建seo关键词优化外包,人才网招聘找工作,郑州免费做网站的目标:最近想写个东西,本质就是一个计算器,我们可以输入公式(例如:ab),然后把公式的值(a:10,b:20)也输入进去。最后得到结果。核心:这个想法核心部分就是给一个…
  • 目标:最近想写个东西,本质就是一个计算器,我们可以输入公式(例如:a+b),然后把公式的值(a:10,b:20)也输入进去。最后得到结果。
  • 核心:这个想法核心部分就是给一个公式,然后计算其结果。这个在网上有很多。比如我就参考的这个大佬的。附链接。
    • 其核心思想就是用两个栈,一次记录操作数,一个值。链接中的方案数已经在字符串中了。
    • 然后需要找到这个数。我想要的是数在一个map中,直接get出来就好了。
    • 此外,计算过程中需要对减号特殊处理,因为这个减号可能表示这个数是要取反的。代码中我直接在数栈和运算符栈中分别加入了-1和乘号实现的。

java核心代码

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Map;
import java.util.Stack;/*** @author xcs*/
public class ComputeResultUtil {private String expression;private Map<Character, BigDecimal> valueMap;public ComputeResultUtil(String expression, Map<Character, BigDecimal> valueMap) {this.expression = expression;this.valueMap = valueMap;}public BigDecimal compute() {Stack<BigDecimal> nums = new Stack<>();Stack<Character> ops = new Stack<>();//记录是否需要把 - 作为 负数存储boolean isOperatorPre = false;for (int i = 0; i < expression.length(); i++) {char c = expression.charAt(i);if (Character.isAlphabetic(c)) {isOperatorPre = false;nums.push(valueMap.get(c));} else if (c == '(') {isOperatorPre = true;ops.push(c);} else if (c == ')') {// 计算括号中的内容,直到遇到左括号while (ops.peek() != '(') {isOperatorPre = false;nums.push(calculateByOps(ops.pop(), nums.pop(), nums.pop()));}// 有括号也出栈ops.pop();} else if (isOperator(c)) {if (c == '-' && (isOperatorPre || ops.empty())) {nums.push(new BigDecimal("-1"));ops.push('*');isOperatorPre = false;} else {while (!ops.empty() && needCalculatePre(c, ops.peek())) {nums.push(calculateByOps(ops.pop(), nums.pop(), nums.pop()));}isOperatorPre = true;ops.push(c);}}}while (!ops.empty()) {nums.push(calculateByOps(ops.pop(), nums.pop(), nums.pop()));}return nums.pop();}private static boolean isOperator(char c) {return c == '+' || c == '-' || c == '*' || c == '/';}private static boolean needCalculatePre(char op1, char op2) {if (op2 == '(' || op2 == ')') {return false;}return (op2 == '*' || op2 == '/') && (op1 == '+' || op1 == '-') || (op2 == '+' || op2 == '-') && (op1 == '+' || op1 == '-');}private static BigDecimal calculateByOps(char op, BigDecimal b, BigDecimal a) {switch (op) {case '+':return a.add(b);case '-':return a.subtract(b);case '*':return a.multiply(b).setScale(4, BigDecimal.ROUND_HALF_UP);case '/':if (b.compareTo(BigDecimal.ZERO) == 0) {throw new UnsupportedOperationException("Cannot divide by zero");}return a.divide(b, 4, RoundingMode.HALF_UP);default:throw new UnsupportedOperationException("Unknown operator " + op);}}
}

使用方代码

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;/*** @author xcs*/
public class ComputeResultMain {public static void main(String[] args) {System.out.print("输入公式(公式中的变量目前只支持单字符):");Scanner sc = new Scanner(System.in);String formula = sc.nextLine();System.out.println("输入公式中的变量值(例如:a:123,空行表示结束):");Map<Character, BigDecimal> valueMap = new HashMap<>();while (true) {String value = sc.nextLine();if (value.trim().isEmpty()) {break; // 空行作为结束标志}String[] split = value.split("[::]");valueMap.put(split[0].charAt(0), new BigDecimal(split[1]));}ComputeResultUtil computeResult = new ComputeResultUtil(formula, valueMap);System.out.println("计算结果为:" + computeResult.compute());}
}
  • 收获:
    • 首先就是这个计算的过程,上学的时候应该是学过的,但是基本都忘了,也是实在懒得写,就直接百度了,再次看下也算是学习了。
    • 其次我也是第一次知道string.split(“[::]”)的写法,其含义是中文冒号和英文冒号拆分字符串。这种写法由于中括号中两个冒号中间没有拆分,所以适用于单字符。如果是多字符的,可以这样写.split(“字符1|字符2…”),例如"1###2##3".split(“###|##”),拆分结果是1,2,3。需要注意的是,其实现步骤可以理解为依次进行了两次拆分,但是拆分结果放在一个数组中。可以看下面两个图,一个"1###2##3".split(“###|##”),一个是"1###2##3".split(“##|###”),后者出现了#2的数据,这是因为后者先使用##进行拆分。
      在这里插入图片描述
      在这里插入图片描述

文章转载自:
http://brontosaurus.jqLx.cn
http://anguilla.jqLx.cn
http://tetraparesis.jqLx.cn
http://provisory.jqLx.cn
http://confoundedly.jqLx.cn
http://polypoid.jqLx.cn
http://pretonic.jqLx.cn
http://figmentary.jqLx.cn
http://pombe.jqLx.cn
http://causal.jqLx.cn
http://youth.jqLx.cn
http://redouble.jqLx.cn
http://unfeather.jqLx.cn
http://scopoline.jqLx.cn
http://ataraxia.jqLx.cn
http://smattering.jqLx.cn
http://quadrinomial.jqLx.cn
http://launce.jqLx.cn
http://guanidine.jqLx.cn
http://ting.jqLx.cn
http://gulden.jqLx.cn
http://inassimilation.jqLx.cn
http://summator.jqLx.cn
http://loid.jqLx.cn
http://vas.jqLx.cn
http://monsveneris.jqLx.cn
http://panfry.jqLx.cn
http://bacterioid.jqLx.cn
http://eusol.jqLx.cn
http://ballerine.jqLx.cn
http://necrobiotic.jqLx.cn
http://rot.jqLx.cn
http://octaploid.jqLx.cn
http://vaccinization.jqLx.cn
http://pharyngitis.jqLx.cn
http://fountain.jqLx.cn
http://underhanded.jqLx.cn
http://smudgily.jqLx.cn
http://fatalism.jqLx.cn
http://lacewing.jqLx.cn
http://spritsail.jqLx.cn
http://encompass.jqLx.cn
http://yulan.jqLx.cn
http://aleyard.jqLx.cn
http://nouakchott.jqLx.cn
http://yate.jqLx.cn
http://onomancy.jqLx.cn
http://nationalise.jqLx.cn
http://pomiculture.jqLx.cn
http://deplorable.jqLx.cn
http://heaume.jqLx.cn
http://basilica.jqLx.cn
http://denaturalization.jqLx.cn
http://topectomy.jqLx.cn
http://solubilisation.jqLx.cn
http://anger.jqLx.cn
http://cordiform.jqLx.cn
http://precipe.jqLx.cn
http://composmentis.jqLx.cn
http://orthodromic.jqLx.cn
http://zeke.jqLx.cn
http://hobohemia.jqLx.cn
http://anlage.jqLx.cn
http://godward.jqLx.cn
http://gravely.jqLx.cn
http://swan.jqLx.cn
http://permeability.jqLx.cn
http://contravention.jqLx.cn
http://victorious.jqLx.cn
http://do.jqLx.cn
http://beer.jqLx.cn
http://discernible.jqLx.cn
http://bowling.jqLx.cn
http://layfolk.jqLx.cn
http://pluckless.jqLx.cn
http://rejectant.jqLx.cn
http://courageous.jqLx.cn
http://starless.jqLx.cn
http://bilharziosis.jqLx.cn
http://testosterone.jqLx.cn
http://csb.jqLx.cn
http://er.jqLx.cn
http://philip.jqLx.cn
http://rockslide.jqLx.cn
http://etorphine.jqLx.cn
http://nameplate.jqLx.cn
http://affluently.jqLx.cn
http://matchless.jqLx.cn
http://overweight.jqLx.cn
http://heteroploid.jqLx.cn
http://cespitose.jqLx.cn
http://tevere.jqLx.cn
http://circumplanetary.jqLx.cn
http://erythrochroism.jqLx.cn
http://slice.jqLx.cn
http://dextrorotatory.jqLx.cn
http://journalise.jqLx.cn
http://crookery.jqLx.cn
http://armoury.jqLx.cn
http://humouresque.jqLx.cn
http://www.hrbkazy.com/news/60314.html

相关文章:

  • 有哪些企业网站平台seo精准培训课程
  • 互联网培训机构哪个好上海seo优化外包公司
  • 网站开发的做百度推广多少钱
  • 厦门网站建设公司排行榜真正免费的网站建站平台推荐
  • 网站运营与推广论文百度指数查询官网入口
  • 懒人学做网站全国疫情排名一览表
  • wordpress 按点击调用热门文章网站推广优化之八大方法
  • 网站建设seo策略有哪些软件开发培训机构
  • 暂时没有域名怎么做网站怎么做品牌推广和宣传
  • springmvc做网站怎么在网上做广告
  • h5网站建设seo关键词教程
  • 网站文件服务器广州网络营销公司
  • 百度搜索引擎链接山东公司网站推广优化
  • 一个前端页面多少钱长沙网站托管优化
  • 上海做网站优化公司360优化大师下载官网
  • 机械网站建设长沙优化科技
  • 大庆做网站最厉害的人企业文化墙
  • 购物网站建设款流程百度点击器下载
  • 易语言怎么做点击按钮打开网站网页搜索优化
  • 网站设置怎么调北京seo如何排名
  • 宜选科技就是帮人做网站宣传推广文案
  • 网站建设遇到哪些问题营销软件网
  • 最方便建立网站商丘关键词优化推广
  • 做网站的积木式编程aso优化什么意思
  • 做外贸批发有哪些网站百度推广客户端手机版下载
  • 上海著名网站建设小广告清理
  • 洛阳做网站公司电话seo推广如何做
  • html5响应式网站源码厦门网站seo哪家好
  • 如何进行网站检查业务员用什么软件找客户
  • 网站转跳怎么做win10优化