Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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,我正在尝试使用获取的字符串作为输入生成一些条件。 例如,我得到了字符串“length=15”,我想从中创建条件: 长度==15。 更具体地说,我的程序中有一个名为length的int,它被设置为一个特定的值。 我想从用户那里获得一个条件作为输入(“length=sin(PI)-abs(k)*foobar²| | n

我正在尝试使用获取的字符串作为输入生成一些条件。
例如,我得到了字符串“length=15”,我想从中创建条件: 长度==15。 更具体地说,我的程序中有一个名为length的int,它被设置为一个特定的值。
我想从用户那里获得一个条件作为输入(“length<15”或“length=15”…),并创建一个if语句来生成条件并对其进行测试。
最好的方法是什么?
非常感谢

Ben

使用字符串标记器。区分标记(或输入字符串的最小部分)的默认方法是空格,这对您有利。 查看javadocs了解详细信息:

除非您讨论的是代码生成(即通过输入字符串生成Java代码),否则无法基于字符串生成if语句

您必须为您的条件语言编写一个解析器,并解释生成的解析树

最后,它看起来是这样的:

Condition cond = ConditionParser.parse("length = 15");

if (cond.eval()) {
    // condition is true
}

取决于您可以对输入格式设置什么限制,可以考虑使用RHIO嵌入JavaScript。然后,您的“条件”必须是有效的JavaScript代码。类似这样的内容(免责声明:尚未编译):


有关更多详细信息,请参阅。

您真的不需要我们。请阅读有关字符串操作/解析以及如何从字符串转换为int的内容。也可以查看split()。您有多少种不同的运算符?有多少个变量要匹配?(长度*重量/尺寸+14>=sin(PI)-abs(k)*foobar²| | n<-z)是一种可能的检查条件吗?我认为这会有所帮助。当做
import javax.script.*;

public bool evalCondition (Object context, String javascript)  {
  ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
  Object result = engine.eval(javascript);
  Boolean condTrue = (Boolean)result;
  return condTrue;
}