android开发分享Android Studio实现带三角函数对数运算功能的高级计算器

用androidstudio编写高级计算器带三角函数对数运算功能界面效果图:layout布局 activity_jisuanqi.xml代码:<?xml version=”1.0″ encodi

用androidstudio编写高级计算器带三角函数对数运算功能

上述就是android开发分享Android Studio实现带三角函数对数运算功能的高级计算器的全部内容,如果对大家有所用处且需要了解更多关于Android学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

界面效果图:

Android Studio实现带三角函数对数运算功能的高级计算器

layout布局 activity_jisuanqi.xml代码:

<?xml version="1.0" encoding="utf-8"?>  <linearlayout xmlns:android="https://schemas.android.com/apk/res/android"      android:layout_width="fill_parent"      android:layout_height="fill_parent"      android:orientation="vertical"      android:padding="5dp" >        <linearlayout          android:layout_width="fill_parent"          android:layout_height="fill_parent"          android:layout_weight="2"          android:orientation="vertical" >            <linearlayout              android:layout_width="fill_parent"              android:layout_height="100dp"              android:layout_weight="1"                android:orientation="vertical"              android:paddingbottom="5dp" >                <textview                  android:id="@+id/text0"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1.2"                    android:gravity="right"                  android:scrollhorizontally="true"                  android:textcolor="#ff000000"                  android:textsize="25sp" />                <textview                  android:id="@+id/text1"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                    android:gravity="right"                  android:scrollhorizontally="true"                  android:text="0"                  android:textcolor="#ff000000"                  android:textsize="30sp" />          </linearlayout>            <linearlayout              android:layout_width="match_parent"              android:layout_height="21dp"              android:layout_weight="1"              android:orientation="vertical" >          </linearlayout>        </linearlayout>        <linearlayout          android:layout_width="fill_parent"          android:layout_height="fill_parent"          android:layout_weight="1"          android:orientation="vertical">            <linearlayout              android:layout_width="fill_parent"              android:layout_height="fill_parent"              android:layout_weight="1"              android:orientation="horizontal">                <button                  android:id="@+id/factorial"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="!" />                <button                  android:id="@+id/power"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="^" />                <button                  android:id="@+id/square_root"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="√" />                <button                  android:id="@+id/pai"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:textallcaps="false"                  android:text="π" />                <button                  android:id="@+id/c"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:textallcaps="false"                  android:text="c"                  android:textcolor="#ffff0000" />          </linearlayout>            <linearlayout              android:layout_width="fill_parent"              android:layout_height="fill_parent"              android:layout_weight="1"              android:orientation="horizontal">                <button                  android:id="@+id/sin"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:textallcaps="false"                  android:text="sin" />                <button                  android:id="@+id/brackets1"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="(" />                <button                  android:id="@+id/brackets2"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text=")" />                <button                  android:id="@+id/e"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:textallcaps="false"                  android:text="e" />                <button                  android:id="@+id/del"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="del" />          </linearlayout>            <linearlayout              android:layout_width="fill_parent"              android:layout_height="fill_parent"              android:layout_weight="1"              android:orientation="horizontal">                <button                  android:id="@+id/cos"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:textallcaps="false"                  android:text="cos" />                <button                  android:id="@+id/seven"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="7" />                <button                  android:id="@+id/eight"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="8" />                <button                  android:id="@+id/nine"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="9" />                <button                  android:id="@+id/division"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="÷" />          </linearlayout>            <linearlayout              android:layout_width="fill_parent"              android:layout_height="fill_parent"              android:layout_weight="1"              android:orientation="horizontal">                <button                  android:id="@+id/tan"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:textallcaps="false"                  android:text="tan" />                <button                  android:id="@+id/four"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="4" />                <button                  android:id="@+id/five"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="5" />                <button                  android:id="@+id/six"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="6" />                <button                  android:id="@+id/multiple"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="×" />          </linearlayout>            <linearlayout              android:layout_width="fill_parent"              android:layout_height="fill_parent"              android:layout_weight="1"              android:orientation="horizontal">                <button                  android:id="@+id/ln"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:textallcaps="false"                  android:text="ln" />                <button                  android:id="@+id/one"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="1" />                <button                  android:id="@+id/two"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="2" />                <button                  android:id="@+id/three"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="3" />                <button                  android:id="@+id/subtract"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="-" />          </linearlayout>            <linearlayout              android:layout_width="fill_parent"              android:layout_height="fill_parent"              android:layout_weight="1"              android:orientation="horizontal">                <button                  android:id="@+id/log"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:textallcaps="false"                  android:text="log" />                <button                  android:id="@+id/zero"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="0" />                <button                  android:id="@+id/point"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="." />                <button                  android:id="@+id/add"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="+" />                <button                  android:id="@+id/eq"                  android:layout_width="fill_parent"                  android:layout_height="fill_parent"                  android:layout_weight="1"                  android:text="=" />          </linearlayout>      </linearlayout>    </linearlayout>

java类jisuanqiactivity代码:

package com.xueba.jsq;    import android.app.activity;  import android.os.bundle;  import android.view.menu;  import android.view.menuitem;  import android.view.menuitem.onmenuitemclicklistener;  import android.view.view;  import android.view.view.onclicklistener;  import android.widget.button;  import android.widget.textview;    public class jisuanqiactivity extends activity implements onclicklistener {      /** called when the activity is first created. */      private string string = "0";      private button btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0;      private button btnadd, btnsub, btnmul, btndiv, btnsin, btncos, btntan;      private button btnln, btnlog, btne, btneq, btnpoint, btndel, btnpower;      private button btnsq, btnpai, btnc, btnb1, btnb2, btnfa;      private textview btnt0, btnt1;      private boolean flag = false;      private getvalue getvalue = new getvalue();      private judge judge = new judge();        private void init() {          btn1 = (button) this.findviewbyid(r.id.one);          btn2 = (button) this.findviewbyid(r.id.two);          btn3 = (button) this.findviewbyid(r.id.three);          btn4 = (button) this.findviewbyid(r.id.four);          btn5 = (button) this.findviewbyid(r.id.five);          btn6 = (button) this.findviewbyid(r.id.six);          btn7 = (button) this.findviewbyid(r.id.seven);          btn8 = (button) this.findviewbyid(r.id.eight);          btn9 = (button) this.findviewbyid(r.id.nine);          btn0 = (button) this.findviewbyid(r.id.zero);          btnadd = (button) this.findviewbyid(r.id.add);          btnsub = (button) this.findviewbyid(r.id.subtract);          btnmul = (button) this.findviewbyid(r.id.multiple);          btndiv = (button) this.findviewbyid(r.id.division);          btnsin = (button) this.findviewbyid(r.id.sin);          btncos = (button) this.findviewbyid(r.id.cos);          btntan = (button) this.findviewbyid(r.id.tan);          btnln = (button) this.findviewbyid(r.id.ln);          btnlog = (button) this.findviewbyid(r.id.log);          btne = (button) this.findviewbyid(r.id.e);          btneq = (button) this.findviewbyid(r.id.eq);          btnpoint = (button) this.findviewbyid(r.id.point);          btndel = (button) this.findviewbyid(r.id.del);          btnpower = (button) this.findviewbyid(r.id.power);          btnfa = (button) this.findviewbyid(r.id.factorial);          btnsq = (button) this.findviewbyid(r.id.square_root);          btnpai = (button) this.findviewbyid(r.id.pai);          btnc = (button) this.findviewbyid(r.id.c);          btnb1 = (button) this.findviewbyid(r.id.brackets1);          btnb2 = (button) this.findviewbyid(r.id.brackets2);          btnt0 = (textview) this.findviewbyid(r.id.text0);          btnt1 = (textview) this.findviewbyid(r.id.text1);            this.btn0.setonclicklistener(this);          this.btn1.setonclicklistener(this);          this.btn2.setonclicklistener(this);          this.btn3.setonclicklistener(this);          this.btn4.setonclicklistener(this);          this.btn5.setonclicklistener(this);          this.btn6.setonclicklistener(this);          this.btn7.setonclicklistener(this);          this.btn8.setonclicklistener(this);          this.btn9.setonclicklistener(this);          this.btnadd.setonclicklistener(this);          this.btnb1.setonclicklistener(this);          this.btnb2.setonclicklistener(this);          this.btnc.setonclicklistener(this);          this.btncos.setonclicklistener(this);          this.btndel.setonclicklistener(this);          this.btndiv.setonclicklistener(this);          this.btne.setonclicklistener(this);          this.btneq.setonclicklistener(this);          this.btnfa.setonclicklistener(this);          this.btnln.setonclicklistener(this);          this.btnlog.setonclicklistener(this);          this.btnmul.setonclicklistener(this);          this.btnpai.setonclicklistener(this);          this.btnpoint.setonclicklistener(this);          this.btnpower.setonclicklistener(this);          this.btnsin.setonclicklistener(this);          this.btnsq.setonclicklistener(this);          this.btnsub.setonclicklistener(this);          this.btntan.setonclicklistener(this);      }        @override      public void oncreate(bundle savedinstancestate) {          super.oncreate(savedinstancestate);          setcontentview(r.layout.activity_jisuanqi);          this.init();      }        public boolean oncreateoptionsmenu(menu menu) {          menuitem exit = menu.add("exit");          exit.setonmenuitemclicklistener(new onmenuitemclicklistener() {              @override              public boolean onmenuitemclick(menuitem item) {                  finish();                  return true;              }          });          return true;      }        @override      public void onclick(view v) {            if ("error".equals(btnt1.gettext().tostring())                  || "∞".equals(btnt1.gettext().tostring())) {              string = "0";          }            if (v == this.btn0) {              string = judge.digit_judge(string, "0", flag);              flag = false;              btnt1.settext(string);          } else if (v == this.btn1) {              string = judge.digit_judge(string, "1", flag);              flag = false;              btnt1.settext(string);          } else if (v == this.btn2) {              string = judge.digit_judge(string, "2", flag);              flag = false;              btnt1.settext(string);          } else if (v == this.btn3) {              string = judge.digit_judge(string, "3", flag);              flag = false;              btnt1.settext(string);          } else if (v == this.btn4) {              string = judge.digit_judge(string, "4", flag);              flag = false;              btnt1.settext(string);          } else if (v == this.btn5) {              string = judge.digit_judge(string, "5", flag);              flag = false;              btnt1.settext(string);          } else if (v == this.btn6) {              string = judge.digit_judge(string, "6", flag);              flag = false;              btnt1.settext(string);          } else if (v == this.btn7) {              string = judge.digit_judge(string, "7", flag);              flag = false;              btnt1.settext(string);          } else if (v == this.btn8) {              string = judge.digit_judge(string, "8", flag);              flag = false;              btnt1.settext(string);          } else if (v == this.btn9) {              string = judge.digit_judge(string, "9", flag);              flag = false;              btnt1.settext(string);          } else if (v == this.btneq) {              btnt0.settext(string + "=");              string = getvalue.advanced_dispose(string);              string = judge.digit_dispose(string);              flag = true;              btnt1.settext(string);          } else if (v == this.btnadd) {              string = judge.judge(string, "+");              flag = false;              btnt1.settext(string);          } else if (v == this.btnsub) {              string = judge.judge(string, "-");              flag = false;              btnt1.settext(string);          } else if (v == this.btnmul) {              string = judge.judge(string, "×");              flag = false;              btnt1.settext(string);          } else if (v == this.btndiv) {              string = judge.judge(string, "÷");              flag = false;              btnt1.settext(string);          } else if (v == this.btnb1) {              if ("0".equals(string) || flag) {                  string = "(";              } else                  string += "(";              flag = false;              btnt1.settext(string);          } else if (v == this.btnb2) {              if ("0".equals(string) || flag) {                  string = ")";              } else                  string += ")";              flag = false;              btnt1.settext(string);          } else if (v == this.btne) {              if ("0".equals(string)) {                  string = "e";              } else                  string += "e";              flag = false;              btnt1.settext(string);          } else if (v == this.btnpower) {              string += "^";              flag = false;              btnt1.settext(string);          } else if (v == this.btnfa) {              string += "!";              flag = false;              btnt1.settext(string);          } else if (v == this.btnsq) {              if ("0".equals(string) || flag)                  string = "";              string += "√";              flag = false;              btnt1.settext(string);          } else if (v == this.btnpai) {              if ("0".equals(string) || flag) {                  string = "π";              } else                  string += "π";              flag = false;              btnt1.settext(string);          } else if (v == this.btnsin) {              if ("0".equals(string) || flag) {                  string = "sin(";              } else                  string += "sin(";              flag = false;              btnt1.settext(string);          } else if (v == this.btncos) {              if ("0".equals(string) || flag) {                  string = "cos(";              } else                  string += "cos(";              flag = false;              btnt1.settext(string);          } else if (v == this.btntan) {              if ("0".equals(string) || flag) {                  string = "tan(";              } else                  string += "tan(";              flag = false;              btnt1.settext(string);          } else if (v == this.btnln) {              if ("0".equals(string) || flag) {                  string = "ln(";              } else                  string += "ln(";              flag = false;              btnt1.settext(string);          } else if (v == this.btnpoint) {              string = judge.judge1(string);              flag = false;              btnt1.settext(string);          } else if (v == this.btnlog) {              if ("0".equals(string) || flag) {                  string = "log(";              } else                  string += "log(";              flag = false;              btnt1.settext(string);          } else if (v == this.btndel) {              if (flag) {                  string = "";                  btnt0.settext(string);                  string = "0";                  btnt1.settext(string);              }                if (!"0".equals(string)) {                  string = string.substring(0, string.length() - 1);                  if (0 == string.length())                      string = "0";              }              flag = false;              btnt1.settext(string);          } else if (v == this.btnc) {              string = "";              btnt0.settext(string);              string = "0";              btnt1.settext(string);              flag = false;          }      }  }

java类getvalue代码:

package com.xueba.jsq;    import java.util.linkedlist;  import java.util.list;    public class getvalue {        public string bracke_dispose(string string) {          // 处理括号里的表达式,思路,          // 1.遇到正括号就将它在字符串里的索引保存在一个链表里<插在链表头>          // 2.遇到第一个反括号就处理这个括号里的表达式<取出链表第一个元素,然后根据这两个索引取出表达式,会调用一个专门处理          // log,ln,sin,cos,tan等的special_dispose函数,将反回一个自由加减乘除的表达式,在调用alg_dispose函数>          // 3.函数处理后返回一个可能还含有log,ln,sin,cos,tan等的但没有括号的表达式;            int flag = 0, flag1 = 0, i = 0;          int leng = string.length();          list<integer> list = new linkedlist<integer>();          character c;          string str = "", tmp = "", tmp3 = "", tmp4 = "";            while (true) {              if (i >= leng)                  break;                c = string.charat(i);                if ('(' == c)                  list.add(0, i);                if (')' == c) {                  if (0 == list.size()) {                      system.out.println(")error");                      return "error";                  }                    str = string.substring(list.get(0) + 1, i);                  tmp = this.special_dispose(str);                  tmp = this.alg_dispose(str);                  if ("error".equals(tmp))                      return "error";                    tmp3 = string.substring(0, list.get(0));                  tmp4 = string.substring(i + 1, leng);                  string = tmp3 + tmp + tmp4;                    flag = str.length() + 2;                  flag1 = tmp.length();                  leng += (flag1 - flag);                  i += (flag1 - flag);                  list.remove(0);              }              i++;          }            if (list.size() != 0) {              system.out.println("(error");              return "error";          }          return string;      }        public string special_dispose(string string) {          // 用于处理特殊表达式;            if ("error".equals(string)) {              return "error";          }          string = dispose(string, "sin");          string = dispose(string, "cos");          string = dispose(string, "tan");          string = dispose(string, "log");          string = dispose(string, "ln");          string = dispose(string, "!");          string = dispose(string, "^");          string = dispose(string, "√");          string = dispose(string, "e");          return string;      }        public string alg_dispose(string string) {          // 处理加减乘除          string = special_dispose(string);            if ("error".equals(string)) {              return "error";          }            character c;          string str = "";          list<double> list = new linkedlist<double>();          double tmp = 0;          boolean add_flag = false;            for (int i = 0; i < string.length(); i++) {              c = string.charat(i);              if (!judge.paiduan(c)) {                  str += c;              } else {                  if (str.length() != 0)                      list.add(new double(str));                    str = "";                  switch (c) {                      case '+':                          if (2 == list.size()) {                              if (add_flag) {                                  tmp = list.get(0) + list.get(1);                                  list.clear();                                  list.add(tmp);                              } else {                                  tmp = list.get(0) - list.get(1);                                  list.clear();                                  list.add(tmp);                              }                              break;                          }                          add_flag = true;                          break;                      case '-':                          if (2 == list.size()) {                              if (add_flag) {                                  tmp = list.get(0) + list.get(1);                                  list.clear();                                  list.add(tmp);                              } else {                                  tmp = list.get(0) - list.get(1);                                  list.clear();                                  list.add(tmp);                              }                              add_flag = false;                              break;                          }                          break;                      case '×':                          if (i == (string.length() - 1))                              return "error";                          while (!(i == (string.length() - 1))                                  && !judge.paiduan((c = string.charat(i + 1)))) {                              str += c;                              i++;                          }                            if (str.length() != 0)                              list.add(new double(str));                          str = "";                            if (list.size() == 2) {                              tmp = list.get(0) * list.get(1);                              list.clear();                              list.add(0, tmp);                          } else {                              tmp = list.get(2) * list.get(1);                              list.remove(2);                              list.remove(1);                              list.add(tmp);                          }                          break;                      case '÷':                          if (i == (string.length() - 1))                              return "error";                          while (!(i == (string.length() - 1))                                  && !judge.paiduan((c = string.charat(i + 1)))) {                              str += c;                              i++;                          }                            if (str.length() != 0)                              list.add(new double(str));                          str = "";                            if (list.size() == 2) {                              tmp = list.get(0) / list.get(1);                              list.clear();                              list.add(0, tmp);                          } else {                              tmp = list.get(2) / list.get(1);                              list.remove(2);                              list.remove(1);                              list.add(tmp);                          }                          break;                      default:                          break;                  }              }          }            if (str.length() != 0)              list.add(new double(str));            if (2 == list.size()) {              if (add_flag) {                  tmp = list.get(0) + list.get(1);                  list.clear();                  list.add(tmp);              } else {                  tmp = list.get(0) - list.get(1);                  list.clear();                  list.add(tmp);              }          }          if (list.size() != 0)              string = "" + list.get(0);            return string;      }        public string get_r_digit(string string, int index) {          // 得到index右边的第一个数;          string tmp = "";          int length = string.length(), j = index;          character character;            if (index >= length)              tmp = "error";            while (true) {              if (j == length)                  break;                character = string.charat(j);              if (character.isdigit(character) || (character == '.')) {                  tmp += character;              } else                  break;              j++;          }            if (0 == tmp.length())              tmp = "error";          system.out.println(tmp);          return tmp;      }        public string get_l_digit(string string, int index) {          // 得到index左边的第一个数;          string tmp = "";          int j = index;          character c;            if (index < 0)              tmp = "error";            while (true) {              if (j < 0)                  break;                c = string.charat(j);              if (character.isdigit(c) || (c == '.')) {                  tmp = "" + c + tmp;              } else                  break;              j--;          }            if (0 == tmp.length())              tmp = "error";            return tmp;      }        public string dispose1(string string) {          // 将π替换为对应的数字;          int index, leng = string.length();          double tmp = math.pi;          while (leng != 0) {                index = string.indexof("π");                if (-1 == index)                  break;                if ((index != 0 && (index + 1) != leng)                      && character.isdigit(string.charat(index + 1))                      && character.isdigit(string.charat(index - 1))) {                  string = string.replacefirst("π", "×" + tmp + "×");              } else if (index != 0                      && character.isdigit(string.charat(index - 1))) {                  string = string.replacefirst("π", "×" + tmp);              } else if (index != 0                      && character.isdigit(string.charat(index + 1))) {                  string = string.replacefirst("π", "" + tmp + "×");              } else {                  string = string.replacefirst("π", "" + tmp);              }            }          return string;      }        public string dispose(string string, string dispose) {          // 处理指定运算符;<log,ln,sin,cos,tan....>          int index, flag = dispose.length(), flag1, flag2;          string tmpstring = "", tmpstring1 = "", tmpstring2 = "";          double tmp, tmp1;          while (string.length() != 0) {              index = string.indexof(dispose);                if (-1 == index)                  break;                if ("!".equals(dispose)) {                  tmpstring = get_l_digit(string, index - flag);                  if (!"error".equals(tmpstring) && !"error".equals(tmpstring1)) {                      tmp = new double(tmpstring);                  } else {                      return "error";                  }                    tmp1 = 1.0;                  for (int i = 1; i <= tmp; i++) {                      tmp1 *= i;                  }                    tmpstring2 = "" + tmp1;                  string = string.replacefirst(tmpstring + dispose, tmpstring2);                } else if ("e".equals(dispose)) {                  tmpstring = get_r_digit(string, index + flag);                  tmpstring1 = get_l_digit(string, index - flag);                    if (!"error".equals(tmpstring) && !"error".equals(tmpstring1)) {                      tmp = new double(tmpstring);                      tmp1 = new double(tmpstring1);                  } else {                      return "error";                  }                    tmp = math.pow(10, tmp);                  tmp1 *= tmp;                    tmpstring2 = "" + tmp1;                  string = string.replacefirst(tmpstring1 + dispose + tmpstring,                          tmpstring2);                  system.out.println(string);                } else if ("^".equals(dispose)) {                  tmpstring = get_r_digit(string, index + flag);                  tmpstring1 = get_l_digit(string, index - flag);                    flag1 = tmpstring.length();                  flag2 = tmpstring1.length();                    if (!"error".equals(tmpstring) && !"error".equals(tmpstring1)) {                      tmp = new double(tmpstring);                      tmp1 = new double(tmpstring1);                  } else {                      return "error";                  }                    tmp = math.pow(tmp1, tmp);                  tmpstring2 = "" + tmp;                  flag1 = index + flag1 + 1;                  flag2 = index - flag2;                    if (0 == flag2) {                      tmpstring = "";                  } else {                      tmpstring = string.substring(0, flag2);                  }                  if (string.length() == flag1) {                      tmpstring1 = "";                  } else {                      tmpstring1 = string.substring(flag1, string.length());                  }                    string = tmpstring + tmpstring2 + tmpstring1;                } else {                  tmpstring = get_r_digit(string, index + flag);                  flag1 = tmpstring.length();                  if (!"error".equals(tmpstring))                      tmp = new double(tmpstring);                  else {                      return "error";                  }                  tmpstring2 = tmpstring;                    if ("sin".equals(dispose)) {                      if ("error".equals(tmp))                          return "error";                      tmp = math.sin(tmp);                  } else if ("cos".equals(dispose)) {                      if ("error".equals(tmp))                          return "error";                      tmp = math.cos(tmp);                  } else if ("tan".equals(dispose)) {                      if ("error".equals(tmp))                          return "error";                      tmp = math.tan(tmp);                  } else if ("log".equals(dispose)) {                      if ("error".equals(tmp))                          return "error";                      tmp = math.log10(tmp);                  } else if ("ln".equals(dispose)) {                      if ("error".equals(tmp))                          return "error";                      tmp = math.log(tmp);                  } else if ("√".equals(dispose)) {                      if ("error".equals(tmp))                          return "error";                      tmp = math.sqrt(tmp);                  } else if ("log".equals(dispose)) {                      if ("error".equals(tmp))                          return "error";                      tmp = math.log(tmp);                  }                    if (index != 0                          && character.isdigit(string.charat(index - 1))) {                      tmpstring = "×" + tmp;                  } else {                      tmpstring = "" + tmp;                  }                  string = string.replacefirst(dispose + tmpstring2, tmpstring);              }          }            return string;      }        public string advanced_dispose(string string) {          string = this.dispose1(string);          string = this.bracke_dispose(string);          string = this.alg_dispose(string);          return string;      }  }

java类judge代码:

package com.xueba.jsq;      public class judge {      public string judge(string string, string c) {          switch (string.charat(string.length() - 1)) {              case '+':              case '-':              case '×':              case '÷':                  string = string.substring(0, string.length() - 1) + c;                  break;              default:                  string += c;                  break;          }          return string;      }        public static string dispose(string string) {          int leng = string.length() - 1;          character character;          if (0 == leng) {              return "error";          }          for (int i = 0; i < leng; i++) {              character = string.charat(i);              if (character.isletter(character)) {                  return "error";              }            }            return string;      }        public string judge1(string string) {          int p = string.length() - 1;          boolean flag = true;          character tmp = string.charat(p);            if (0 == p)              string += ".";            if (character.isdigit(tmp) && 0 != p) {              while (flag) {                  if (!character.isdigit(tmp)) {                      flag = false;                      if (tmp != '.')                          string += ".";                  }                    if (0 == --p && (tmp != '.')) {                      string += ".";                      break;                  }                    tmp = string.charat(p);              }            }          return string;      }        public static boolean paiduan(character c) {          switch (c) {              case '+':              case '-':              case '×':              case '÷':                  return true;              default:                  return false;          }      }        public string digit_judge(string string, string c, boolean flag) {          if ("0".equals(string)) {              string = c;          } else if (flag) {              string = c;          } else              string += c;          return string;      }        public string digit_dispose(string string) {          if ("error".equals(string)) {              return string;          }            double double1 = new double(string);            if(double1>999999999999999.0)              return "∞";            long l = (long) (double1 * 1e4);          double1 = (double) (l / 1e4);            string = "" + double1;          return string;      }  }

以上就是android开发分享Android Studio实现带三角函数对数运算功能的高级计算器的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/addevelopment/1098040.html

(0)
上一篇 2022年5月27日
下一篇 2022年5月27日

精彩推荐