计算器输出错误

Calculator output error

我正在尝试计算器代码。

我的设计linkhttps://i.stack.imgur.com/KrzRD.png

如果我的字符串s1值=2*5*7+1+4

我的代码的这一部分要做什么才能在文本视图中获得结果

s1 = (edt1.getText()+"");
                    ArrayList<String> buffer = new ArrayList<String>();
                    String temp = "";
                    for (int j = 0; j < s1.length(); j++) {
                        if (Character.isDigit(s1.charAt(j)) || s1.charAt(j) == '.') {
                            char c1 = s1.charAt(j);

                            temp = temp + String.valueOf(c1);

                        }
                        if (s1.charAt(j) == '+' || s1.charAt(j) == '-' || s1.charAt(j) == '*' || s1.charAt(j) == '/') {
                            buffer.add(temp);
                            temp = "";
                            buffer.add(String.valueOf(s1.charAt(j)));
                        }
                    }
                    buffer.add(temp);

你的主要问题是这一行 edt1.setText(edt1.getText() +s2); 和任何像这样的行,(+) si 不是计算过程,它是两个字符串之间的连接所以你必须 make s2 int而不是 string 并将 edittext 中的文本解析为 Integer.parse(edt1.getText().tostring()) 到 (+)将是两个数字之间的计算过程而不是连接过程

您正在连接字符串,请改用下面的方法

button7.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                edt1.setText(Interger.parseInt(edt1.getText().toString()) + Interger.parseInt(s7));
            }
        });