`

StringExpressToBooleanLogic(Copyright)

 
阅读更多

My Dears:

亲们:

みなさん:

写这篇文章不容易,所以看到这个话,请留下您的足迹

 

今天写了一个工具,是将String型的逻辑表达式变成Boolean型的,写的很粗糙,但基本功能实现。

为什么要写这个,因为java对解释型的判断很差,所以做了这个工具的话,java也可以做解释操作了

 

嘿嘿,别的就不说了具体的下面操作:

 

package com.chenhailong.exception;

/**
 * 
 * @author chenhailong
 *下午07:30:53
 *com.chenhailong.exception
 */
public class IllegalAugmentException extends Exception{

	/**
	 * 
	 */
	private static final long serialVersionUID = 4240091329381438566L;

	public IllegalAugmentException(Exception e) {
		super(e);
	}

}
 
package com.chenhailong.main;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import com.chenhailong.exception.IllegalAugmentException;

/**
 * 
 * @author chenhailong 
 * 下午07:29:51 
 * com.chenhailong.main
 */
public class StringExpressToBoolean {

	private static final String JAVASCRIPTLAN = "JavaScript";
	private static final String SUCCESS = "Success";
	private static final String FAILED = "Failed";
	private static final String FILENAME = "IFcontroller.txt";

	public static void main(String[] args) {
		try {
			String str = getStringFromFile();
			System.out.println(str);
			boolean bool = getLogic(str);
			if (bool) {
				System.out.println(SUCCESS);
			} else {
				System.out.println(FAILED);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 
	 * @param expressValue
	 * @return
	 * @throws IllegalAugmentException
	 * @throws ScriptException
	 */
	public static boolean getLogic(String expressValue)
			throws IllegalAugmentException, ScriptException {
		Boolean bool = null;
		if (expressValue == null || expressValue.length() == 0) {
			return false;
		}
		try {
			ScriptEngineManager mgr = new ScriptEngineManager();
			ScriptEngine engine = mgr.getEngineByName(JAVASCRIPTLAN);
			String foo = expressValue;
			bool = Boolean.valueOf(engine.eval(foo).toString());
		} catch (ScriptException e) {
			throw e;
		} catch (Exception e) {
			throw new IllegalAugmentException(e);
		}
		return bool;
	}

	/**
	 * 
	 * @return
	 * @throws IOException
	 */
	public static String getStringFromFile() throws IOException {
		String str = null;
		BufferedReader reader = new BufferedReader(new FileReader(new File(
				FILENAME)));
		while (reader.ready()) {
			str = reader.readLine();
		}
		return str;
	}

}

 代码开源,所以也没什么,希望大家努力将这个工具发扬光大,让他成为你项目中的亮点

 

嘻嘻,多多留言

0
0
分享到:
评论

相关推荐

    Copyright Notice and Proprietary Information

    **版权(Copyright)** 版权是一种法律制度,给予创作者对其原创作品的独占权利,包括文学、艺术、音乐、戏剧和计算机软件等。在中国,版权的法律基础是《中华人民共和国著作权法》。通过版权,作者或创作者有权控制...

    Copyright © 2008 - 2010\nAll rights reserved

    "Copyright © 2008 - 2010 All rights reserved" 的版权信息表明,该软件自2008年开始发布并持续更新,至今保持着对用户隐私和知识产权的尊重与保护。 AnCal的主要功能聚焦于日历管理,这在"日历"这一标签中得到了...

    VS2012 CopyRight 扩展插件

    VS2012 插件,可在项目文档中自动写入Copyright 信息, 1.下载资源解压 2.将Addins 文件夹放入 我的文档-〉Visual Studio 2012文件夹下 3.重启Visual Studio 2012即可看到工具栏多出一个添加Copyright按钮 4.在项目...

    copyright.rar_程序copyright

    "copyright.rar_程序copyright"这个压缩包文件似乎包含了用于向程序或文件批量添加版权信息的工具或代码。下面,我们将详细探讨版权保护的重要性,批量处理版权信息的原理,以及可能实现这种功能的方法。 版权是一...

    copyright的下载包和数据包

    copyright的下载包和数据包

    前端开源库-typographic-copyright

    "前端开源库-typographic-copyright"是一个专注于印刷版权的前端库,其核心目标是确保在网页设计中正确、专业地处理版权信息,避免使用字母替代品,以提高内容的可读性和法律合规性。 首先,我们要理解...

    Copyright .html

    Copyright .html

    react-copyright:用于格式化和显示版权声明的react组件

    var Copyright = require ( 'react-copyright' ) ; var Component = React . createClass ( { render : function ( ) { return ( < Copyright> Jason Bellamy < / Copyright > ) ; } } ) ; 选项 财产 类型 ...

    考贝工具Copyright

    考贝工具,非常好用,大家可以试试,后台运行,不影响运行速度

    China-software-copyright-master

    "China-software-copyright-master"这个压缩包文件包含的是关于如何申请软件著作权的教程和模板文档,以及可能使用的源代码统计工具,这对于软件开发企业和个人开发者来说是非常宝贵的资源。 首先,我们来看一下...

    copyright-header::copyright:Copyright Header是用于在源代码上操纵软件许可证的实用程序-Software copyright source code

    版权标题 版权标头是用于操纵源代码上的许可证的实用程序。 特征 在源文件上递归添加/删除版权标头 自定义语法配置以编写注释 内置对GPL3和MIT许可证的支持 支持带有--license-file参数的... Usage: copyright-heade

    ccx.rar_copyright_opensparc

    《ccx.rar_copyright_opensparc:深入解析Verilog代码与OpenSPARC开源项目》 在计算机硬件设计领域,Verilog是一种广泛使用的硬件描述语言(HDL),它允许工程师用编程的方式描述数字系统的逻辑行为。这个名为"ccx....

    copyright.html

    copyright

    Copyright.rar_autoit_udf

    "Copyright.rar_autoit_udf"这个压缩包文件,显然包含了与版权信息处理相关的AutoIt UDF。 在AutoIt中,UDF是通过编写.au3文件实现的。".au3"是AutoIt脚本的扩展名,这些脚本由一系列函数和命令组成,可以执行各种...

    系统信息查看器 Copyright2000..2008

    主要用于查看一些系统信息!比如用户名名与主机名IP地址等!

    svelte-copyright::copyright:一个Svelte组件,用于格式化和显示版权声明

    :copyright:一个Svelte组件,用于格式化和显示版权声明。 一个组件,用于格式化和显示版权声明。 安装 该软件包在NPM上可用,您可以使用npm或yarn安装它: npm install svelte-copyright yarn add svelte-...

    Aspose.Words 11.7 去水印版

    去除了“Evaluation Only. Created with Aspose.Words. Copyright 2003-2011 Aspose Pty Ltd.”水印 word,pdf等相互转换,相信对需要的朋友有帮组

    IEEE会议论文模板及版权书

    其次,"ieeecopyrightform.docx" 和 "ieeecopyrightform.pdf" 文件则是IEEE版权转移表格,用于作者将论文的版权转让给IEEE。在提交论文时,通常需要填写并提交这个表格,表明作者同意IEEE有权出版和分发论文。这两个...

    Watermarking Techniques for Copyright Protection of Videos

    Watermarking Techniques for Copyright Protection of Videos,Ashish M. Kothari • Vedvyas Dwivedi Rohit M. Thanki,2019

Global site tag (gtag.js) - Google Analytics