在Android实习中,为了实现一个科学计算器,需要自己实现计算类,偶然发现了BeanShell,其中的一个功能就是可以对一串数学表达式进行计算,所以使用该第三方jar包实现了简易的Android计算器。
Beanshell (bsh) 是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性。
BeanShell执行 标准Java语句和表达式,另外包括一些脚本命令和语法。它将脚本化对象看作简单闭包方法(simple method closure)来支持,就如同在Perl和JavaScript中的一样。当然BeanShell能做的事还有很多,再次不再赘述。
这是jar包的下载地址:
http://www.beanshell.org 或 http://download.csdn.net/detail/lqefn/204352
下面是实现过程,首先我们需要导入该jar包,本次使用IDE为Android Studio,首先创建工程之后,选择菜单栏的File,点击Project Structure。
然后选中Dependencies,点击右侧加号,选择File dependency,然后选择下载好的jar包的路径。
下面就可以在java中使用import bsh.Interpreter; 导入我们需要的包
使用BeanShell我们主要使用下面两行代码
Interpreter bsh = new Interpreter(); //声明Interpreter类
Number result = (Number)bsh.eval(exp); //将exp要计算的表达式传入,并用result接收结果
下面是代码实现过程:首先是UI的xml代码,效果如下图
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"