เครื่องคิดเลขที่ใช้ใน Java หลักการถูกอ่านเป็นความคิดเห็นของรหัสเนื้อหาเฉพาะมีดังนี้
คลาสสาธารณะ mycalculator {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {string obj = "6+ (8/2)+6/3+1*8+30"; ArrayList <String> arrayList = strformat (obj); System.out.println (obj + "=" + คำนวณ (arraylist)); } / *** ใช้นิพจน์ที่ตามมาเพื่อคำนวณผลลัพธ์* 1 เมื่อสตริงปัจจุบันเป็นตัวเลขให้ป้อนสแต็ก* 2 โดยตรงเมื่อสตริงปัจจุบันเป็นเครื่องคิดเลขให้ทำการคำนวณสองครั้งแรกบนสแต็ก* 3 แปลง (obj); System.out.println (ผลลัพธ์); สแต็ก <integer> stack = ใหม่สแต็ก <> (); สำหรับ (int i = 0; i <result.size (); i ++) {string symbol = result.get (i); if (isDigital (สัญลักษณ์)) {// ตัวเลขคือ stack.push โดยตรง (integer.parseint (สัญลักษณ์)); } else {// ตัวดำเนินการ int num1, num2; num1 = stack.pop (); // นำตัวเลขสองตัว num2 = stack.pop (); สวิตช์ (สัญลักษณ์) {case " +": stack.push (num2 + num1); หยุดพัก; กรณี " -": stack.push (num2 - num1); หยุดพัก; กรณี " *": stack.push (num2 * num1); หยุดพัก; กรณี " /": stack.push (num2 / num1); หยุดพัก; ค่าเริ่มต้น: break; }}} return stack.pop (); } / *** traversal ในการสั่งซื้อถูกเปลี่ยนเป็น traversal* / arrayList แบบคงที่ส่วนตัว <String> แปลง (arrayList <String> arrayList) {stack <String> stack = ใหม่สแต็ก <> (); ArrayList <String> result = new ArrayList <> (); สำหรับ (int index = 0; ดัชนี <arraylist.size (); index ++) {string symbol = arraylist.get (ดัชนี); ถ้า (isDigital (สัญลักษณ์)) {// ถ้าเป็นตัวเลขมันจะเป็นเอาต์พุตโดยตรง ADD (สัญลักษณ์); } อื่นถ้า (symbol.equals (")")) {String tmp; ในขณะที่ (! (tmp = stack.pop ()). เท่ากับ ("(")) {// หยุดหลังจากการแข่งขันสำเร็จผลลัพธ์ add (tmp);}} else {ถ้า (stack.isempty ()) {stack.push (สัญลักษณ์); // ลำดับความสำคัญน้อยกว่าลำดับความสำคัญในสแต็กและสแต็กมักจะปล่อยออกมา (TMP); result.add (stack.pop ());} ผลตอบแทน; ArrayList <String> arrayList = new ArrayList <> (); (! comchar.toString (). trim (). เท่ากับ (")) {arraylist.add (comchar.toString (). trim ()); comchar.delete (0, comchar.length ());} arraylist.add (ch +"); (! comchar.toString (). trim (). equals ("")) {arraylist.add (comchar.toString (). trim ()); ! symbol.equals ("+") &&! symbol.equals ("-") &&! symbol.equals ("*") &&! symbol.equals ("/") &&! symbol.equals ("(") &&! "/" กลับมา 4;ทั้งหมดข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น