亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在函數上動態編寫逗號字符(作為參數)?

如何在函數上動態編寫逗號字符(作為參數)?

侃侃爾雅 2023-05-10 15:22:13
我在我的項目中使用 MxParser 庫。我在下面寫了 3 種不同的方式。前兩個有效,但第三個(我真正想要的)無效 1) (working)    Argument x=new Argument("x",2);    Argument y=new Argument("y",3);    Argument z=new Argument("z",4);    Expression e2=new Expression("(y-x)*100",x,y,z);    String result=String.valueOf(e2.calculate());    System.out.println("result= "+result);2) (working)    HashMap<String, Argument> map4 = function_2(list);    Entry<String, Argument> next4 = map4.entrySet().iterator().next();    Argument a = next4.getValue();    String formula="(A+A)*100";    Expression e = new Expression(formula,a);    System.out.println("result= " + e.calculate());3) (not working)    HashMap<String, Argument> map4 = function_2(list);    Entry<String, Argument> next4 = map4.entrySet().iterator().next();    Argument a = next4.getValue();    String formula="(A+A)*100";    String s=","; // This line is D?fferent    Expression e = new Expression(formula+s+a); // This is too    System.out.println("result= " + e.calculate());
查看完整描述

2 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

你為什么要那樣做?你正在混合參數值和源代碼。所以你問的是不可能的。Java 預編譯代碼,但如果您所做的工作可行,則需要運行時編譯。

Expression 構造函數Expression(java.lang.String expressionString, PrimitiveElement... elements)接受可變數量的元素。您甚至可以傳遞一組 PrimitiveElement 實例:

Argument[] arguments=new Argument[3];
arguments[0]==new Argument("x",2);
arguments[1]=new Argument("y",3);
arguments[2]=new Argument("z",4);Expression e = new Expression(formula,arguments);

看起來足夠靈活?;蛘吣隳芙忉屢幌聻槭裁催@對你的情況不是一個有用的解決方案。

重新審理您的最后一個案例時:

    HashMap<String, Argument> map4 = function_2(list);
    String formula="(A+A)*100";
        Expression e = new Expression(formula,map4.values().toArray(new Argument[0]));
    System.out.println("result= " + e.calculate());

Argument... 只接受一系列 Argument 實例或 Argument 類型的數組。map4.values().toArray(new Argument[0])將值參數列表轉換為數組。該參數new Argument[0]只是返回正確類型的數組所必需的。


查看完整回答
反對 回復 2023-05-10
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

我在我編寫的函數中返回動態值作為結果。(例如,A、B 和 C(所有參數類型))

我必須根據函數的結果自動創建一個表達式。

例如; 比如3個值返回(A,B,C)應該是這樣;

Expression e2 = new Expression ("(A * B) * (C-100)", A, B, C);

如果2個值返回(A, B, C)應該是這樣;

Expression e2 = new Expression ("(A * B) / 10", A, B);

如果 1 返回 (A) 應該是這樣的;

Expression e2 = new Expression ("(A * 15)", A);

也就是說,我必須根據下一個數字自動編寫這些表達式。

那我就用calculate()函數來計算。


查看完整回答
反對 回復 2023-05-10
  • 2 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號