计算器输出错误

时间:2018-01-14 07:24:01

标签: java android operators calculator

我正在尝试使用计算器代码。

我的设计链接https://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);

2 个答案:

答案 0 :(得分:0)

你的主要问题是在这一行edt1.setText(edt1.getText() +s2);和任何这样的行,(+)si不是计算过程,它是两个字符串之间的连接所以你必须使s2 int而不是string < / strong>并解析edittext中的文本,如此 Integer.parse(edt1.getText(。。tostring())到(+)将是2号之间的钙化过程而不是连接过程

答案 1 :(得分:0)

您正在整理字符串,请在下面使用

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