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;
}