字符串Java中的除法器

字符串Java中的除法器,java,string,parsing,expression,Java,String,Parsing,Expression,假设一个数学表达式中有任意数量的除法 例如: (x+2) / (1+ 1 / (x-2)) 如何输出表达式中的每个除数?对于上述示例,输出必须为: 1+1/(x-2) x-2 因为这里有一个除以1+1/(x-2),而这个除以又包含一个除以x-2 我只得到第一个除数,也就是第一个/,之后的整个表达式。如何得到所有除数 编辑:他要求的是得到表达式中的所有除数。除法是一种形式为A/b的表达式,其中A和b可以是数字、变量或表达式a是“被除数”b是“除数”。您希望输出表达式中的每个除数 关键是要认识到

假设一个数学表达式中有任意数量的除法

例如:

(x+2) / (1+ 1 / (x-2))
如何输出表达式中的每个除数?对于上述示例,输出必须为:

1+1/(x-2)
x-2
因为这里有一个除以
1+1/(x-2)
,而这个除以又包含一个除以
x-2

我只得到第一个除数,也就是第一个/,之后的整个表达式。如何得到所有除数


编辑:他要求的是得到表达式中的所有除数。

除法是一种形式为
A/b
的表达式,其中A和b可以是数字、变量或表达式
a
是“被除数”
b
是“除数”。您希望输出表达式中的每个除数

关键是要认识到表达式实际上是一个二叉树结构。树的节点是符号,它们组合了两个子表达式。叶(没有子体的节点)是变量或数字。下面是一个表达式示例:

最上面的操作是最后发生的除法。左边是
x+2
,它由两个叶节点(x和2)和一个+操作组成。右边是子表达式(1+1/(x-2))。请注意,最后一部分很棘手。如果只从左向右看操作符,可能会将其误解为(1+1)/(x-2)。但它实际上是1+(1/(x-2)),因为需要考虑运算符优先级

然后需要做的是创建一个解析器,在内存中构建树,同时考虑括号和运算符优先级。如果需要所有除数,可以遍历树中的每个节点,如果它是一个除数节点,则需要其右侧子节点的表达式。括号必须重新填充,或者您可以在解析期间缓存字符串的部分,并将这些部分链接到节点


这不是一个提供现成代码的答案,但正如注释中所述,堆栈溢出不是解决这个问题的地方。如果提出了非常具体的问题,可能会提供代码,但是对于像这样的更大的问题,我们更愿意解释“如何”,并将实际实现留给您。因为那是你的工作、家庭作业或爱好。

你能解释一下所有分隔符的行吗??你能更清晰地编辑你的问题吗。再检查一遍,伙计,你甚至把标志(运算符)从+改为-。可能你想要的是数学以外的东西。首先,你只给出一个要求,希望得到完整的解决方案,这不是stackoverflow的主题。当然,这个解释太简短了。这一点并不清楚。因此,请编辑您的问题以添加信息和您尝试过的内容。看@ZubairNabi不,看起来他想要所有的除数。所以首先他需要得到(1+1/(x-2))。这里面又有一个除数,即(x-2)。