⑴ java中如何解析字符串公式,并且利用公式进行计算
可以使用 commons-jexl3 jar包
示例:
public static void main(String[] args){
String expressionString = "1+2+3";
JexlEngine jexlEngine = new JexlBuilder().create();
JexlExpression jexlExpression = jexlEngine.createExpression(expressionString);
Object evaluate = jexlExpression.evaluate(null);
System.out.println(evaluate);
}
结果: 6
示例2:
来个复杂点的
public static void main(String[] args){
// String expressionString = "1+2+3";
String expressionString = "100*10-(200+300)";
JexlEngine jexlEngine = new JexlBuilder().create();
JexlExpression jexlExpression = jexlEngine.createExpression(expressionString);
Object evaluate = jexlExpression.evaluate(null);
System.out.println(evaluate);
}
结果: 500
⑵ java如何如何解析带有变量的公式,急急急
不知道你在给公式赋完变量之后是要做什么,是直接输出公式计算结果呢,还是直接把整个公式打印出来呢。
如果你是想输出计算结果的话,你的所谓的公式应该是写成了一个方法的吧,这样直接把参数传给该方法就可以得到你想要的结果了吧。
如果你是想输出替换变量之后的公式的话,那就用替换做呗,JAVA里面有一个叫MessageFormat的类可以帮你做这个事情。
比方说一个一元一次方程ax=3,a就是你想替换的变量了如果你想把它替换成3,这样的话在java里面可以这么实现
String string = "{0}x=3";
String result = MessageFormat.format(string, "3");
得到的result就是3x=3了。
二元式子的话就这么干啦:
String string = "{0}x+{1}y=3";
String result = MessageFormat.format(string, "3", "3");
结果就是3x+3y=3的啦
⑶ 用java解析EXCEL公式的问题
获取公式值可用 HSSFFormulaEvaluator e= New HSSFFormularEvaluator(workbook);
e.evaluate(cell).getNumberiValue.
如果不是你要的结果。还有其它很多方法。
比如这样一个比较笨的方法。
double value = cell.getNumericCellValue();
value = value * 24 *3600;
int h = (int) (value /3600)
int m= (int )((value - h* 3600) /60);
int s = (int)(value-h*3600 -m* 60) ;
String result = h + ":"+m + "s" ;
得到结果。
⑷ 如何用java编写一元二次方程的求根问题
import java.util.Scanner;
public class 一元二次方程 {
public static void main(String[] args) {
System.out.println("请输入你一元二次方程的a,b,c");
Scanner input=new Scanner(System.in);
int a=input.nextInt();
int b=input.nextInt();
int c=input.nextInt();
double d=b*b-4*a*c;
double e,f;
if (d==0){
System.out.println("这是个完全平方");
e=f=-b/2*a;
System.out.print(e);
}
else if(d<0) {
System.out.println("无效根");
}
else {
System.out.println("这是个不完全平方,需要用求根公式");
double g=Math.sqrt(Math.abs(b));
e=-(b+g)/2*a;
f=-(e);
System.out.println("第一根是"+e);
System.out.println("第二根是"+f);
}
}
}
这是我的运行结果
(4)java公式解析扩展阅读:
利用java编程解决数学上的解方程题,我们需要把方程求解的思路写出来,然后对应到每一步具体的求解步骤上。就比如解一元二次方程,需要我们把解方程的求根公式,判断式写出,最后用代码表示出来就好了。
需要注意的是,java中有特定的包和数学函数去求解数学问题,比如求根号可以用Math.sqrt()函数,求绝对值用Math.abs()函数