`

可以用来解析字符串表达式的包

阅读更多

 

import com.singularsys.jep.Jep;
  import com.singularsys.jep.JepException;
  public class SimpleExample
  { public static void main(String[] args) { Jep jep = new Jep(); //一个数学表达式
  String exp = "((a+b)*(c+b))/(c+a)/b"; //给变量赋值
  jep.addVariable("a", 10);
  jep.addVariable("b", 10);
  jep.addVariable("c", 10);
  try { //执行
  jep.parse(exp);
  Object result = jep.evaluate();
  System.out.println("计算结果: " + result); }
  catch (JepException e)
  {
  System.out.println("An error occured: " + e.getMessage());
  }
  }
  }

 package com.eric.test;

import org.nfunk.jep.JEP;

public class SimpleExample {
	public static void main(String[] args) {
		JEP jep = new JEP(); // 一个数学表达式
		String exp = "((a+b)*(c+b))/(c+a)/b"; // 给变量赋值
		jep.addVariable("a", 10);
		jep.addVariable("b", 10);
		jep.addVariable("c", 10);
		jep.parseExpression(exp);
		Object result = jep.getValueAsObject();
		System.out.println("计算结果: " + result);
	}

}

 package com.eric.test;

import org.nfunk.jep.JEP;

public class Test {
	public static void main(String[] args) {
		JEP myPrase=new JEP();

		myPrase.parseExpression("5+1+6");

		double a=myPrase.getValue();

		System.out.println(a);
		
		myPrase.parseExpression("1000<10002&&1001>1000");
		//System.out.println((Boolean)myPrase.getValueAsObject());
		System.out.println(myPrase.getValue());
	}

}


package com.eric.test;

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

public class ScriptTest {
	private ScriptEngine se;

	public ScriptTest() {
		ScriptEngineManager sem = new ScriptEngineManager();		
		se = sem.getEngineByExtension("js");
	}

	public Object cal(String expression) {
		Object result = null;
		try {
			result = se.eval(expression);
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("Error occured");
		}
		return result;
	}

	public static void main(String[] args) {
		ScriptTest app = new ScriptTest();
		String[] s = { "1+1", "(1-2)*4", "3*(2+4)/27" };
		for (int i = 0; i < s.length; i++) {
			Object r = app.cal(s[i]);
			System.out.println(s[i] + " = " + r);
		}
	}
}
 
分享到:
评论

相关推荐

    python正则表达式.zip

    正则表述式用于搜索、替换和解析字符串。正则表达式遵循一定的语法规则,使用非常 灵活,功能强大。使用正则表达式编写一些逻辑验证非常方便,例如电子邮件地址格式的验 证。正则表达式是对字符串(包括普通字符...

    Python正则表达式

    正则表述式用于搜索、替换和解析字符串。正则表达式遵循一定的语法规则,使用非常 灵活,功能强大。使用正则表达式编写一些逻辑验证非常方便,例如电子邮件地址格式的验 证。 正则表达式是对字符串(包括普通字符...

    python-17-正则表达式.zip

    正则表述式用于搜索、替换和解析字符串。正则表达式遵循一定的语法规则,使用非常 灵活,功能强大。使用正则表达式编写一些逻辑验证非常方便,例如电子邮件地址格式的验 证。正则表达式是对字符串(包括普通字符...

    C++ 算数表达式分析模块(附原理简介)

    表示式分析可以用来计算一般的算数表达式,可以作为函数计算的模块。 目前版本为1.3,附带实现原理(编译原理的基本内容)。 main.cpp 有示例使用方法,in.txt为示例输入。 代码中有注释,使用方法有详细说明。 ...

    正则表达式的概述级详细例题解析

    正则表达式的概述和详细的例题及解析,让你一目了然,用于可加密等技术比较方便,(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。 (2)用来查找字符串,从一个长的文本中查找符合指定特征的字符...

    全面解析JS字符串和正则表达式中的match、replace、exec等函数

    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 正则表达式由于不经常使用,所以容易经常忘记,...

    正则表达式

    当一个正则表达式成功地和目标字符串相匹配时,可以从目标串中抽出和括号中的子模式相匹配 的部分.例如,假定我们正在检索的模式是一个或多个字母后面跟随一位或多位数字,那么我们可以使用模式 / [a-z] + \ d+/.但是...

    QRegExp的详细解析

    正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。(3)用来替换,比普通的...

    Caoutchouc:该库允许用户使用“交互树”解析字符串。 例如,它可以用来创建tchat AI

    该库使您可以搜索与树的正则表达式或文字字符串匹配的字符串。 当搜索匹配时,您将从树中获取关联的数据。 搜索结果基于树中当前的搜索级别。 该库正在积极开发中,仅在其开始之时。 进展中的文件#介绍# 本教程/...

    2Java SE(上).doc

    6)boolean startsWith(String str):用来判断当前字符串是否是以给定的字符串起始的 boolean endsWith(String str):用来判断当前字符串是否是以给定的字符串结尾的。 7)String toUpperCase() String ...

    EL表达式 (详解)

    ${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求参数的一组 值.pageScope表示页面范围的变量.requestScope表示请求对象的变量. sessionScope表示会话 范围内的变量.applicationScope...

    解析posix与perl标准的正则表达式区别

    正则表达式(Regular Expression,缩写为regexp,regex或regxp),又称正规表达式、正规表示式或常规表达式或正规化表示法或正规表示法,是指一个用 来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。...

    C++ 算数表示式分析求解模块(附原理简介)

    表示式分析可以用来计算一般的算数表达式,可以作为函数计算的模块。 目前版本为1.3,附带实现原理(编译原理的基本内容)。 main.cpp 有示例使用方法,in.txt为示例输入。 代码中有注释,使用方法有详细说明。 /* ...

    初学者python笔记(re模块、正则表达式完全解析)

    正则表达式也内嵌在Python中,通过re模块来实现,常用方法是findall(),会将匹配到的字符串用一个列表返回 例如: 要匹配一大串字符串中的所有数字,不用for循环和If语句,用re模块一行就能实现 import re print(re....

    正则表达式萌新详解

    在我们使用爬虫进行大型网站数据的爬取时我们肯定会用到数据解析,正则表达式是数据解析方法的一种。 正则表达式模式 描述 ^ 匹配字符串的开头 $ 匹配字符串的末尾。 . 匹配任意字符,除了换行符,当re....

    C#计算公式源代码、可以计算四则运算(+-*/()、三解涵数等)

    可以计算出基本的四则运算(加、减、乘、除、括号)、三角涵数、自定义变量, 计算方法均封装到ConcSoft.Calculate.cs文件中,直接调用方法...可以直接用来开发功能强大的的计算器程序。 C#2010 + asp.net3.5 开发

    100个直接可以拿来用的JavaScript实用功能代码片段(1-10)

    1、原生JavaScript实现字符串长度截取 2、原生JavaScript获取域名主机 3、原生JavaScript清除空格 4、原生JavaScript替换全部 5、原生JavaScript转义html标签 6、原生JavaScript还原html标签 7、原生JavaScript时间...

    python爬虫课程要点.docx

    4)正则表达式:强大的字符串处理工具,有自己特定的语法结构,实现字符串的检索、替换、匹配、验证。 5)函数:end(),返回指定分组的结束位置,默认返回正则表达式所匹配到的最后一个字符的索引。 6)...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    22. 匹配由26个英文字母的大写组成的字符串 23 匹配由26个英文字母的小写组成的字符串 24 匹配由数字和26个英文字母组成的字符串; 25 匹配由数字、26个英文字母或者下划线组成的字符串; java源码: /* * Created ...

    python模块

    * re:re模块用来对字符串进行正则表达式的匹配和替换。 * string:string模块包含大量有用的常量和函数用来处理字符串。也包含了新字符串格式的类。 * struct:struct模块被用来在python和二进制结构间实现转化。 *...

Global site tag (gtag.js) - Google Analytics