⑴ 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()函數