2 回答
TA贡献1776条经验 获得超12个赞
您不是在“比较双重值”,实际上您根本没有在比较任何东西。字符串是字符串,而不是真/假值,因此不兼容类型错误。(澄清一下,Java 看到的是一个字符串:if("Double.valueOf(String[2]) > 20"){}not if(Double.valueOf(String[2]) > 20){})
我可能只是在比较运算符上使用一个开关(确保它是一个字符串而不是一个字符):
switch(operator) {
case ">":
doStuffGreaterThan();
break; // Needed or else it will continue into the next cases too
case "<":
doStuffLessThan();
break;
case ">=":
doStuffGE();
break;
... etc ...
}
编辑:我做了一些搜索并找到了这个,我以前没见过但可能有用。
TA贡献1804条经验 获得超2个赞
如果你想从字符串中评估条件,你可以使用这样的东西:
public static void main(String[] args) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
try {
Boolean eval = (Boolean) engine.eval("40 > 10");
assert(eval);
} catch (ScriptException e) {
e.printStackTrace();
}
}
添加回答
举报