Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 计算器输出错误_Java_Android_Operators_Calculator - Fatal编程技术网

Java 计算器输出错误

Java 计算器输出错误,java,android,operators,calculator,Java,Android,Operators,Calculator,我正在尝试计算器代码 我的设计链接 如果我的字符串s1值=2*5*7+1+4 在我的代码的这一部分中,如何在文本视图中获得结果 s1 = (edt1.getText()+""); ArrayList<String> buffer = new ArrayList<String>(); String temp = ""; for (int j = 0; j

我正在尝试计算器代码

我的设计链接

如果我的字符串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);
s1=(edt1.getText()+);
ArrayList缓冲区=新的ArrayList();
字符串temp=“”;
对于(int j=0;j
您的主要问题在这一行
edt1.setText(edt1.getText()+s2)
和任何这样的行,(+)不是计算过程中放的,它是两个字符串之间的串联,因此您必须使s2 int而不是string,并像这样解析edittext中的文本Integer.parse(edt1.getText().tostring())到(+)将是2个数字之间的计算过程,而不是连接过程

您正在连接字符串,请使用下面的内容

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

我否决了这个问题,因为这里的代码太多了。为了明确你的问题所在,请删除任何不直接导致你的问题的代码,如果你能把它减少到十行或更少,我会考虑撤回投票。看:我刚刚编辑了我的代码你能看到我的代码@JoeC吗