Friday 15 April 2011

java - how to add Double and Char arrays with each other in my scientific calculator program -



java - how to add Double and Char arrays with each other in my scientific calculator program -

i have 2 arrays.

double number[] = new double[5]; char oper[] = new char[4];

in programme when user press operator sign +,-,*,/ number array taking user input illustration if entering 345 taking , saving in number[0] , [0] become [1] , save current operation input user , save in oper[0] , on. dont know how can result using both arrays. pasting whole code here.

package com.example.calculatortesting; import android.os.bundle; import android.support.v7.app.actionbaractivity; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.edittext; import android.widget.textview; public class mainactivity extends actionbaractivity implements onclicklistener { textview textdisplay; edittext currentcalc; edittext et1; double number[] = new double[5]; //for saving numbers in array char oper[] = new char[4]; //for saving operation in array int numposition = 0; //for position of number array int operposition = 0; //for position of operation array double currentnum; //saving current number before operation int last_button = 0; //checking lastly button pressed char operator; //saving pressed operation value string newnum = ""; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.calculator); et1 = (edittext) findviewbyid(r.id.edittext1); textdisplay = (textview) findviewbyid(r.id.edittext1); currentcalc = (edittext) findviewbyid(r.id.textview1); button b1 = (button) findviewbyid(r.id.b1); button b2 = (button) findviewbyid(r.id.b2); button b3 = (button) findviewbyid(r.id.b3); button b4 = (button) findviewbyid(r.id.b4); button b5 = (button) findviewbyid(r.id.b5); button b6 = (button) findviewbyid(r.id.b6); button b7 = (button) findviewbyid(r.id.b7); button b8 = (button) findviewbyid(r.id.b8); button b9 = (button) findviewbyid(r.id.b9); button b0 = (button) findviewbyid(r.id.b0); button multiply1 = (button) findviewbyid(r.id.multiply); button divide1 = (button) findviewbyid(r.id.divide); button plus1 = (button) findviewbyid(r.id.plus); button minus1 = (button) findviewbyid(r.id.minus); button equal1 = (button) findviewbyid(r.id.equal); button clear1 = (button) findviewbyid(r.id.clear); button back1 = (button) findviewbyid(r.id.backspace); button dot1 = (button) findviewbyid(r.id.decimal); button plusminus1 = (button) findviewbyid(r.id.plusminus); button percent = (button) findviewbyid(r.id.percent); button shift = (button) findviewbyid(r.id.shift); b1.setonclicklistener(this); b2.setonclicklistener(this); b3.setonclicklistener(this); b4.setonclicklistener(this); b5.setonclicklistener(this); b6.setonclicklistener(this); b7.setonclicklistener(this); b8.setonclicklistener(this); b9.setonclicklistener(this); b0.setonclicklistener(this); multiply1.setonclicklistener(this); divide1.setonclicklistener(this); plus1.setonclicklistener(this); minus1.setonclicklistener(this); equal1.setonclicklistener(this); clear1.setonclicklistener(this); back1.setonclicklistener(this); dot1.setonclicklistener(this); plusminus1.setonclicklistener(this); percent.setonclicklistener(this); shift.setonclicklistener(this); } public void currentcalcmethod(string currentcalcoper) { currentcalc.settext(currentcalc.gettext() + currentcalcoper); currentcalc.setselection(currentcalc.gettext().length()); } void number() { } void oper() { number[numposition] = currentnum; oper[operposition] = operator; numposition ++; operposition++; currentnum= 0; } void result (){ double total; stringbuilder builder = new stringbuilder(); (double num : number) { (char op : oper){ builder.append(num + op); total = num+op; et1.settext(double.tostring(total)); }} } public void shownum(string number) { newnum = newnum + number ; currentnum = double.parsedouble(newnum); et1.settext(double.tostring(currentnum)); } @override public void onclick(view v) { if (v.getid() == r.id.b0) { currentcalcmethod("0"); shownum("0"); } else if (v.getid() == r.id.b1) { currentcalcmethod("1"); shownum("1"); } else if (v.getid() == r.id.b2) { currentcalcmethod("2"); shownum("2"); } else if (v.getid() == r.id.b3) { currentcalcmethod("3"); shownum("3"); } else if (v.getid() == r.id.b4) { currentcalcmethod("4"); shownum("4"); } else if (v.getid() == r.id.b5) { currentcalcmethod("5"); shownum("5"); } else if (v.getid() == r.id.b6) { currentcalcmethod("6"); shownum("6"); } else if (v.getid() == r.id.b7) { currentcalcmethod("7"); shownum("7"); } else if (v.getid() == r.id.b8) { currentcalcmethod("8"); shownum("8"); } else if (v.getid() == r.id.b9) { currentcalcmethod("9"); shownum("9"); } else if (v.getid() == r.id.plus) { currentcalcmethod("+"); operator = '+'; oper(); } else if (v.getid() == r.id.minus) { currentcalcmethod("-"); operator = '-'; oper(); } else if (v.getid() == r.id.percent) { currentcalcmethod("%"); operator = '%'; oper(); } else if (v.getid() == r.id.divide) { currentcalcmethod("/"); operator = '/'; oper(); } else if (v.getid() == r.id.multiply) { currentcalcmethod("*"); operator = '*'; oper(); } else if (v.getid() == r.id.decimal) { currentcalcmethod("."); } else if (v.getid() == r.id.equal) { result (); currentcalcmethod("="); } else if (v.getid() == r.id.backspace) { if (currentcalc.gettext().tostring().length() > 0) { int start =0; int end2 = currentcalc.gettext().tostring().length() - 1; string newtext2 = currentcalc.gettext().tostring() .substring(start, end2); currentcalc.settext(newtext2); } } else if (v.getid() == r.id.clear) { textdisplay.settext(""); currentcalc.settext(""); number = null; oper = null; numposition = 0; operposition = 0; } else if (v.getid() == r.id.plusminus) { } last_button = v.getid(); } }

take user input string , parse it. like:

string userinput = "3+5"; list<character> numbers = new arraylist<>(); list<character> operators = new arraylist<>(); (char c : userinput.tochararray()) { if(character.isdigit(c)){ numbers.add(c); } else{ operators.add(c); } } // loop through lists , perform desired arthimetic operation based on operator

java android arrays

No comments:

Post a Comment