android开发的计算器
android开发的计算器,关键代码段落 protected Double Calculate(String str) { List<String> symbol = getsymbol(str); List<Double> num = getnum(str); if(num.size()==symbol.size()) num.add(0.0); if (symbol != null) { for (int i = 0; i < symbol.size(); i++) { if (symbol.get(i).equals("×") || symbol.get(i).equals("÷")) { String sign = symbol.remove(i); Double n1 = num.remove(i); Double n2 = num.remove(i); Double result = 0.0; if (sign.equals("×")) { result = n1 * n2; } else { result = n1 / n2; } num.add(i, result); i = i - 1; } } } while (!symbol.isEmpty()) { String sign = symbol.remove(0); Double n1 = num.remove(0); Double n2 = num.remove(0); Double result = 0.0; if (sign.equals("+")) { result = n1 + n2; } else { result = n1 - n2; } num.add(0, result); } return num.remove(0); } private List<Double> getnum(String str) { StringTokenizer tokenizer = new StringTokenizer(str, "+-×÷"); List<Double> ops = new ArrayList<Double>(); while (tokenizer.hasMoreElements()) { String string = tokenizer.nextElement().toString(); Double double1 = Double.parseDouble(string); ops.add(double1); } return ops; } private List<String> getsymbol(String str) { StringTokenizer tokenizer = new StringTokenizer(str, "0123456789."); List<String> ops = new ArrayList<String>(); while (tokenizer.hasMoreElements()) { String string = tokenizer.nextToken(); ops.add(string); } return ops; }