GroovyShell 实现
public static void main(String args[]) {

        Binding binding = new Binding();

        binding.setVariable("F",2.5);
binding.setVariable("T",30);
binding.setVariable("A",100);
binding.setVariable("P0",100); binding.setVariable("language", "Groovy"); GroovyShell shell = new GroovyShell(binding); Object F1 =shell.evaluate("P1=(1+0.1 * (F/100) * T)*P0; return P1 "); Object F2 =shell.evaluate("P1=P0*(0.055*0.20+1.0011)+A; return P1 "); System.out.println(F1);
System.out.println(F2); }
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.7</version>
</dependency>
ScriptEngine实现
public static void main(String args[]) {

        ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
Compilable compilable = (Compilable) engine;
Bindings bindings = engine.createBindings(); //Local级别的Binding
String script = "(1+0.1 * (F/100) * T)*P0"; //定义函数并调用
CompiledScript JSFunction = null; //解析编译脚本函数
try {
JSFunction = compilable.compile(script);
bindings.put("F", 2.5);
bindings.put("T", 30);
bindings.put("A", 100);
bindings.put("P0", 100);
Object result = JSFunction.eval(bindings);
System.out.println(result); //调用缓存着的脚本函数对象,Bindings作为参数容器传入
} catch (ScriptException e) {
e.printStackTrace();
} }

Java 字符串转成运算公式的更多相关文章

  1. java字符串类型数学运算表达式以及精度丢失问题

    字符串类型数学运算精度丢失问题 方式一:ScriptEngine 会精度丢失,可执行连续双括号 方式二:hutool ScriptUtil 会精度丢失,可执行连续双括号 方式三:hutool Scri ...

  2. java 字符串转成 json 数组并且遍历

    当需要把一串字符串转成一个json 数组 ,并遍历其中的内容时. 首先要导入 net.sf.json.JSONArray和net.sf.json.JSONObject 两个jar 包 String s ...

  3. java执行字符串中的运算公式

    import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.Scrip ...

  4. java 字符串的运算公式直接转计算结果

    // 字符串的运算公式直接转计算结果 public static void main(String[] args) {ScriptEngine se = new ScriptEngineManager ...

  5. Java中将0x开头的十六进制字符串转换成十进制整数

    1.Integer.toString(int i) 由于input(输入数据)是以0x开头的字符串,并不是整型.因而在用 String s = Integer.toString(input); 时用会 ...

  6. android112 jni 把java的字符串转换成c的字符串,数组处理

    package com.itheima.charencode; import android.os.Bundle; import android.app.Activity; import androi ...

  7. Java将ip字符串转换成整数的代码

    下面代码是关于Java将ip字符串转换成整数的代码,希望对各位有较大用途. public class IpUtil { public static int Ip2Int(String strIp){ ...

  8. java 图片转换成base64字符串

    import java.io.ByteArrayOutputStream; import java.io.FileInputStream;import java.io.FileOutputStream ...

  9. java字符串转义,把&lt;&gt;转换成<>等字符【原】

    java字符串转义,把<>转换成<>等字符 使用的是commons-lang3-3.4 中的StringEscapeUtils类 package test; import ja ...

随机推荐

  1. 简单实例,说明自动生成Makefile的详细过程

    为了编译一个简单的源文件main.c,需要自动生成一个makefile,以下是步骤: 第一步:----------在/root/project/main目录下创建一个文件main.c,其内容如下:-- ...

  2. ubuntu内窗口最大最小化

    我用的dell笔记本,开始的时候,需要修改dell笔记本的BIOS,里面有一个 Funtion Key 一开始定义的行为是多媒体的,需要改成默认行为,具体记不清了, 反正知道这个,肯定知道哪里找. 然 ...

  3. android.animation(6) - AnimatorSet

    上几篇给大家分别讲了ValueAnimator和ObjectAnimator,相比而言ObjectAnimator更为方便而且由于set函数是在控件类内部实现,所以封装性更好.而且在现实使用中一般而言 ...

  4. CXAnimation.h动画类

    /**************************************************************************** 使用一个CCAnimation对象可以CCS ...

  5. java中==和equals和hashcode的区别详解

    一.相同点 都是用来进行值或对象的比较. 二.不同点 对于“==”而言,对于基本类型(char,byte,short,int,long,float,double,boolean),对比的是值,所以是相 ...

  6. 每日英语:Risk-Averse Culture Infects U.S. Workers, Entrepreneurs

    Americans have long taken pride on their willingness to bet it all on a dream. But that risk-taking ...

  7. 关于C与python交互设想及文章汇总

    gui: gtk by c 后台: python Python实例浅谈之三Python与C/C++相互调用 Python 与 C/C++ 交互的几种方式 C语言 + GTK3+ Visual Stud ...

  8. 0066 阿里云大学的几道Java基础测试题

    阿里云大学的几道Java基础测试题: https://edu.aliyun.com/clouder/exam/intro/15 https://edu.aliyun.com/clouder/exam/ ...

  9. 部署静态页面到nginx

    1.将页面上传到某个位置.比如:/home/myapp/navi 2. server_name localhost;  localhost 更换为自己的域名 3.更改配置文件./usr/local/n ...

  10. linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结(转载)

    Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的.生成tar包后,就可以用其它的程序来进 行压缩了,所以首先就来讲讲ta ...