gpt4 book ai didi

java - 将声明变量的字符串(例如 "x+y")转换为 double 作为数学函数

转载 作者:行者123 更新时间:2023-12-02 00:04:25 25 4
gpt4 key购买 nike

我想做的是读取一行(字符串)并将其用作数学函数来获取(双)值或不同点的答案(基本上就像计算器)

为了直接和直接,我添加了一个非常简单的代码来说明我正在尝试做的事情:

double x, y, z;
String function;

x = 5;
y = 4;
function = "(x*y)+y";

z = Double.parseDouble(function);

/*
I want z to equal this
z = (x*y)+y;
*/
System.out.print("z= " + z);

同样,这只是一个示例代码,可以更清楚地说明我的问题。我的问题又是:当 z 是 double 且 function 是字符串时,如何设置 z = function?

注意:如您所见,我尝试解析,但没有成功。我也尝试逐个字符地读取字符串,但它也不起作用,因为它将字符的值加在一起。

最佳答案

我猜您正在寻找 lexer和一个parser .

这些是每个编译器或解释器的基本组件

  • 词法分析器能够将输入(您的字符串)拆分为标记
  • 解析器能够构建一棵树,该树表示标记的语法形状,以便在语义上进一步解释

这个学科非常广泛,我建议您从类似 ANTLR 开始对于 Java,它是一个解析器生成器,它将根据您通过语法指定的规则生成词法分析器和解析器。有很多,这只是我想到的第一个。

如果您想忘记所有这些理论,只需在您的 Java 程序中嵌入 JavaScript 或 Groovy 之类的东西,它们就能够解释在运行时给出的代码,以便您可以这样做。

关于java - 将声明变量的字符串(例如 "x+y")转换为 double 作为数学函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14175085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com