zoukankan      html  css  js  c++  java
  • java 字符串转运算符

     1 import javax.script.ScriptEngine;
     2 import javax.script.ScriptEngineManager;
     3 import javax.script.ScriptException;
     4 
     5 /**
     6         *  有1个字符串(包含若干个加减乘除运算列),格式如下:2*3/7-1*6+4=;1.5+1/4*3.243-5*6=;2.32+30/4-64*1=;......" * ,请编写代码计算结果(保留2位小数)
     7         *  预期输出:
     8         *  2*3/7-1*6+4=?
     9         *  1.5+1/4*3.243-5*6==?
    10         *  2.32+30/4-64*1=-?
    11         */
    12 class test {
    13     public String calculate(String arg) throws ScriptException {
    14         String result = "";
    15         //TODO
    16         //按照分号分割
    17         String  temp[] = arg.split(";");
    18         //以下方法实现 eval功能
    19         ScriptEngineManager manager = new ScriptEngineManager();
    20         ScriptEngine se = manager.getEngineByName("js");
    21         for(String s:temp){
    22             //去掉等于号
    23             String sNew = s.substring(0,s.length()-1);
    24             //保留二位小数
    25             String sNewTwo =   String.format("%.2f", (Double) se.eval(sNew)).toString();
    26             result = result + s+ sNewTwo + "
    ";
    27         }
    28         result = result.substring(0,result.length()-2);
    29         return result;
    30     }
    31 
    32 
    33 
    34     public static void main(String [] args) throws ScriptException{
    35         test testNew = new test();
    36         String s = "2*3/7-1*6+4=;1.5+1/4*3.243-5*6=;2.32+30/4-64*1=;";
    37         String sNew = testNew.calculate(s);
    38         System.out.println(sNew);
    39 
    40     }
    41 }
  • 相关阅读:
    设计模式-状态模式
    Nginx相关
    Docker基础使用
    JavaScript定时器及回调用法
    前端交互篇
    基于ConcurrentHashMap的本地缓存
    J.U.C体系进阶(五):juc-collections 集合框架
    J.U.C体系进阶(四):juc-sync 同步器框架
    J.U.C体系进阶(三)- juc-atomic 原子类框架
    .net core https 双向验证
  • 原文地址:https://www.cnblogs.com/whycai/p/14678885.html
Copyright © 2011-2022 走看看