2 回答

TA貢獻1776條經(jīng)驗 獲得超12個贊
您不是在“比較雙重值”,實際上您根本沒有在比較任何東西。字符串是字符串,而不是真/假值,因此不兼容類型錯誤。(澄清一下,Java 看到的是一個字符串:if("Double.valueOf(String[2]) > 20"){}not if(Double.valueOf(String[2]) > 20){})
我可能只是在比較運算符上使用一個開關(guān)(確保它是一個字符串而不是一個字符):
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條經(jīng)驗 獲得超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();
}
}
添加回答
舉報