博客
关于我
最简单 最快速 地在Andriod studio上实现一个简易计算器 【eval () 函数】 ! ! !
阅读量:283 次
发布时间:2019-03-01

本文共 5251 字,大约阅读时间需要 17 分钟。

在Eclipse中使用JavaScript实现字符串运算

使用Eclipse中的JavaScript引擎实现字符串表达式计算

在Eclipse中,通过JavaScript引擎轻松实现字符串表达式的运算。我们可以利用eval()函数来执行JavaScript代码,从而实现复杂的数学运算。

安卓计算器开发实例

一、依赖管理

build.gradle中添加必要的依赖:

implementation 'io.apisense:rhino-android:1.1.1'

二、布局配置

activity_main.xml中定义布局:

三、功能实现

MainActivity.java中,通过JavaScript引擎实现计算器功能:

package com.example.cal;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;public class MainActivity extends AppCompatActivity {    private Button btnlim, btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btnp, btnadd, btnsub, btnmul, btndiv, btnequ;    private TextView in;    private String s = "", result = "";    ScriptEngine j = new ScriptEngineManager().getEngineByName("javascript");    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        in = (TextView) findViewById(R.id.input);        btnlim = (Button) findViewById(R.id.buttoneliminate);        btn0 = (Button) findViewById(R.id.button0);        btn1 = (Button) findViewById(R.id.button1);        btn2 = (Button) findViewById(R.id.button2);        btn3 = (Button) findViewById(R.id.button3);        btn4 = (Button) findViewById(R.id.button4);        btn5 = (Button) findViewById(R.id.button5);        btn6 = (Button) findViewById(R.id.button6);        btn7 = (Button) findViewById(R.id.button7);        btn8 = (Button) findViewById(R.id.button8);        btn9 = (Button) findViewById(R.id.button9);        btnp = (Button) findViewById(R.id.buttonpoint);        btnadd = (Button) findViewById(R.id.buttonadd);        btnsub = (Button) findViewById(R.id.buttonsub);        btnmul = (Button) findViewById(R.id.buttonmul);        btndiv = (Button) findViewById(R.id.buttondiv);        btnequ = (Button) findViewById(R.id.buttonequal);        btnlim.setOnClickListener(new mclick());        btn0.setOnClickListener(new mclick());        btn1.setOnClickListener(new mclick());        btn2.setOnClickListener(new mclick());        btn3.setOnClickListener(new mclick());        btn4.setOnClickListener(new mclick());        btn5.setOnClickListener(new mclick());        btn6.setOnClickListener(new mclick());        btn7.setOnClickListener(new mclick());        btn8.setOnClickListener(new mclick());        btn9.setOnClickListener(new mclick());        btnp.setOnClickListener(new mclick());        btnadd.setOnClickListener(new mclick());        btnsub.setOnClickListener(new mclick());        btnmul.setOnClickListener(new mclick());        btndiv.setOnClickListener(new mclick());        btnequ.setOnClickListener(new mclick());    }    class mclick implements OnClickListener {        public void onClick(View v) {            if (v == btnlim) {                s = "";            } else if (v == btnequ) {                try {                    String t = s;                    result = j.eval(t).toString();                    s += "=" + result;                    in.setText(s);                    s = result;                } catch (ScriptException e) {                    e.printStackTrace();                }            } else {                switch (v.getId()) {                    case R.id.button0:                        s += "0";                        break;                    case R.id.button1:                        s += "1";                        break;                    case R.id.button2:                        s += "2";                        break;                    case R.id.button3:                        s += "3";                        break;                    case R.id.button4:                        s += "4";                        break;                    case R.id.button5:                        s += "5";                        break;                    case R.id.button6:                        s += "6";                        break;                    case R.id.button7:                        s += "7";                        break;                    case R.id.button8:                        s += "8";                        break;                    case R.id.button9:                        s += "9";                        break;                    case R.id.buttonpoint:                        s += ".";                        break;                    case R.id.buttonadd:                        s += "+";                        break;                    case R.id.buttonsub:                        s += "-";                        break;                    case R.id.buttonmul:                        s += "*";                        break;                    case R.id.buttondiv:                        s += "/";                        break;                }                in.setText(s);            }        }    }}

通过以上代码,我们可以在Android Studio中轻松实现一个功能简单的计算器。用户可以通过点击数字和操作符来构建表达式,点击"="按钮即可查看计算结果。

转载地址:http://qaao.baihongyu.com/

你可能感兴趣的文章
MySQL 数据库备份种类以及常用备份工具汇总
查看>>
mysql 数据库存储引擎怎么选择?快来看看性能测试吧
查看>>
MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作
查看>>
MySQL 数据库的高可用性分析
查看>>
MySQL 数据库设计总结
查看>>
Mysql 数据库重置ID排序
查看>>
Mysql 数据类型一日期
查看>>
MySQL 数据类型和属性
查看>>
mysql 敲错命令 想取消怎么办?
查看>>
Mysql 整形列的字节与存储范围
查看>>
mysql 断电数据损坏,无法启动
查看>>
MySQL 日期时间类型的选择
查看>>
Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
查看>>
MySQL 是如何加锁的?
查看>>
MySQL 是怎样运行的 - InnoDB数据页结构
查看>>
mysql 更新子表_mysql 在update中实现子查询的方式
查看>>
MySQL 有什么优点?
查看>>
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>