Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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 - Fatal编程技术网

Java 如何检查给定表达式是否为有效的数学表达式?

Java 如何检查给定表达式是否为有效的数学表达式?,java,android,Java,Android,我正在android studio中使用java制作一个android计算器。所有功能都运行良好。但是,如果字符串不包含有效的数学表达式(即,它不应该包含其他字符,也不像2*3/+4),我不希望buttonEQL工作 我是初学者 查看了Dijkstra的堆栈算法?库不支持在不执行表达式的情况下验证表达式。如果你需要这种功能,你应该找一个不同的库。另一个是什么@安德烈亚斯,“另一个”是什么?有很多表达式库,你只需要自己研究找到它们,然后决定哪一个最符合你的需要。不要在这里问,因为。 buttonE

我正在android studio中使用java制作一个android计算器。所有功能都运行良好。但是,如果字符串不包含有效的数学表达式(即,它不应该包含其他字符,也不像2*3/+4),我不希望buttonEQL工作


我是初学者

查看了Dijkstra的堆栈算法?库不支持在不执行表达式的情况下验证表达式。如果你需要这种功能,你应该找一个不同的库。另一个是什么@安德烈亚斯,“另一个”是什么?有很多表达式库,你只需要自己研究找到它们,然后决定哪一个最符合你的需要。不要在这里问,因为。
buttonEQL.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (result.getText().length()>0){

                String expression = result.getText().toString();
                Double res= new DoubleEvaluator().evaluate(expression);
                result.setText(res.toString());

            }
            else Toast.makeText(getApplicationContext(),"no no no ",Toast.LENGTH_SHORT).show();


            }
    });