博客
关于我
最简单 最快速 地在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 证明为什么用limit时,offset很大会影响性能
查看>>
Mysql 语句操作索引SQL语句
查看>>
MySQL 误操作后数据恢复(update,delete忘加where条件)
查看>>
MySQL 调优/优化的 101 个建议!
查看>>
mysql 转义字符用法_MySql 转义字符的使用说明
查看>>
mysql 输入密码秒退
查看>>
mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现
查看>>
mysql 通过查看mysql 配置参数、状态来优化你的mysql
查看>>
mysql 里对root及普通用户赋权及更改密码的一些命令
查看>>
Mysql 重置自增列的开始序号
查看>>
mysql 锁机制 mvcc_Mysql性能优化-事务、锁和MVCC
查看>>
MySQL 错误
查看>>
mysql 随机数 rand使用
查看>>
MySQL 面试题汇总
查看>>
MySQL 面试,必须掌握的 8 大核心点
查看>>
MySQL 高可用性之keepalived+mysql双主
查看>>
MySQL 高性能优化规范建议
查看>>
mysql 默认事务隔离级别下锁分析
查看>>
Mysql--逻辑架构
查看>>