1
我已经使用EvalEx(https://github.com/uklimaschewski/EvalEx)并对其进行了修改,使其没有像数学软件包那样的计算器。 所以现在它可以从用户获得字符串形式的输入并打印出结果。评估在Java中包含变量的字符串形式的表达式
这样的:
Enter an Expression: ADD(DIV(SIN(FACT(3)),CEIL(TAN(MUL(1.5,FIB(4))))),GCD(2,10))
The Result is: 1.94
现在用户将进入包含变量而不是常量
ADD(DIV(SIN(FACT(X1)),CEIL(TAN(MUL(1.5,FIB(X2))))),GCD(Y,10))
和整体的代码应该像下面运行时表达式:
Enter an Expression: ADD(DIV(SIN(FACT(X1)),CEIL(TAN(MUL(1.5,FIB(X2))))),GCD(Y,10))
Enter Variables: X1,X2,Y
Enter values for X1, X2 and Y by this order(separate the values by space): 3 4 2
The Result is: 1.94
请注意,用户首先输入表达式,然后告诉机器什么是t他变量(如在“输入变量:x1,x2,y”) 也我不得不使用客观编程概念我可以更改EvalEx中的现有代码以使程序识别变量吗?
谢谢你的回答 但你能告诉我另一种方式,而无需使用map和hashmap吗? 如果我可以通过更改EvalEx中的eval方法来做到这一点会好得多,因为我应该避免使用包 实际上我正在寻找方法来使代码在没有任何准备好的软件包(如地图,数学等)的情况下工作(除必需类似java.lang的当然) – Vicarious
你不必使用'HashMap'。你可以使用一对数组来代替(一个'String []'用于变量名,一个'double []'用于相应的值)。但是我不知道你对“Map”有什么反应 - 它在java.util中,所以它几乎没有异国情调!如果您希望我们帮助您修改“EvalEx”的代码,您将不得不在该问题中包含该方法的代码。 –
我没有任何反对地图 我刚开始学习java,所以我认为这是一个包,我不应该使用 和这个链接到代码,这基本上是它应该看起来像 https: //www.dropbox.com/sh/0zeqdc6sn5ouvcm/AAAdjl9XCf6TQrNqyu5wUCJTa?dl=0 – Vicarious