如何让java接受字符串表达式作为双精度表达式?
在我的代数项目中,我正在制作一个java程序,可以绘制你输入的方程式。我从一个网站上获得了免费的基本绘图代码,并实现了一些东西。在代码中,当它返回图形的方程式时,它是一个双精度的。在代码中,您可以更改double中的等式,它将很好地绘制它。当我试图从用户输入将字符串放入代码时,如果我在等式中放入X或*或/之类的内容,程序将崩溃。我试着把Double.parseDoubleequation放到Double中,但还是不起作用。顺便说一句,我是java新手。谢谢 这是代码的外观类圆圈1: 公共双GetyDuble x{ 返回Double.parsedouble方程; } 在读取公式的类中,以下是代码:如何让java接受字符串表达式作为双精度表达式?,java,Java,在我的代数项目中,我正在制作一个java程序,可以绘制你输入的方程式。我从一个网站上获得了免费的基本绘图代码,并实现了一些东西。在代码中,当它返回图形的方程式时,它是一个双精度的。在代码中,您可以更改double中的等式,它将很好地绘制它。当我试图从用户输入将字符串放入代码时,如果我在等式中放入X或*或/之类的内容,程序将崩溃。我试着把Double.parseDoubleequation放到Double中,但还是不起作用。顺便说一句,我是java新手。谢谢 这是代码的外观类圆圈1: 公共双Get
graph.functions.add(new Circle1());
表达式是字符串Double。parseDouble只能解析双精度值。例如,如果字符串值为5、5.0或5.89,则Double.parseDouble不会引发异常
如果你想解析一个等式,你必须用你自己的逻辑来解析它。例如,您必须搜索运算符,如+、-、/,拆分其上的字符串,然后处理输入。如果允许使用库,则可能就是您要查找的对象。Double.parseDouble完全按照它所说的做。它不解析X,*,或/。还有,你说的方程是双精度的是什么意思?你能提供一个有效的方程和一个无效的方程的例子吗?如果我这样做,可能会重复:public double getYdouble x{return 5*x*x-3*x+7;}图形会工作,如果我把它作为字符串方程输入,这将不起作用:public double getYdouble x{return double.parsedoublequation;}谢谢我有一个简短的问题IM新手你将如何搜索运算符?你必须使用正则表达式来查看是否有运算符。G通过contains、indexof和matches方法的文档,你将了解需要做什么