Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中从一堆代码中提取方程_Java - Fatal编程技术网

在Java中从一堆代码中提取方程

在Java中从一堆代码中提取方程,java,Java,我有一个Java项目,需要从用户输入的一堆代码中提取数学方程。例如,用户在jTextArea中键入了以下代码: public void setTest(int i) { int j; j=i+i; } 那么,我怎样才能得到方程: j=i+i; 从上面的用户输入中,因为它是字符串形式的?您可以使用Java解释器执行此操作。参见前面的问题 您需要编写或找到一个理解Java的解析器——或者至少对Java有足够的了解,能够识别语句的开始和结束位置,然后识别哪些语句是“等式” (这不是

我有一个Java项目,需要从用户输入的一堆代码中提取数学方程。例如,用户在
jTextArea
中键入了以下代码:

public void setTest(int i)
{
    int j;
    j=i+i;
}
那么,我怎样才能得到方程:

j=i+i;

从上面的用户输入中,因为它是字符串形式的?

您可以使用Java解释器执行此操作。参见前面的问题


您需要编写或找到一个理解Java的解析器——或者至少对Java有足够的了解,能够识别语句的开始和结束位置,然后识别哪些语句是“等式”


(这不是一个等式。它是一个赋值语句。当同一个变量出现在
=
操作符的两侧时,这是一个重要的区别,除其他原因外。)

可能重复感谢提供的有用信息,但由于jTextArea是由用户输入的,我担心beanshell无法解释它。那么,是否有任何可能的方法通过忽略
code
public void setTest(inti)得到等式{int j;
code
你能试着澄清一点吗?在那个程序中,我提示一个jTextArea让用户输入他们的代码进行单元测试。然而,每个程序员都有自己的编码风格,并且存在许多不确定因素。在这种情况下,我想只在代码中获取关键字,比如j=I+I;,square=a*b;,等等……因此t解释器只能对方程进行精确解释。