我正在尝试使用字符串生成一些条件我得到输入
例如,我得到字符串“长度= 15”,我想从那里创建条件:
长度== 15。
更具体地说,我的程序中有一个名为length的int,它被设置为一个特定的值
我想从用户那里获得一个条件作为输入(“长度< 15”或“length = 15”....)并创建一个if语句来生成条件并测试它。
这样做的最佳方式是什么?
非常感谢
本
答案 0 :(得分:1)
除非您在谈论代码生成(即通过输入字符串生成Java代码),否则无法基于字符串生成if语句。
您必须为条件语言编写解析器,并解释生成的解析树。
最后看起来像这样:
Condition cond = ConditionParser.parse("length = 15");
if (cond.eval()) {
// condition is true
}
答案 1 :(得分:0)
使用字符串标记生成器。区分标记(或输入字符串的最小部分)的默认方法是空格,这对您有利。 查看javadocs了解详情: http://docs.oracle.com/javase/1.3/docs/api/java/util/StringTokenizer.html
答案 2 :(得分:0)
根据您对输入格式的限制,您可以考虑使用Rhino嵌入Javascript。您的“条件”只需要是有效的JavaScript代码。这样的事情(免责声明:尚未编译):
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;
}
有关详细信息,请参阅Embedding Rhino Tutorial。