1

我有一个字符串“a>b”,我想转换成一个普通的条件表达式。如何在Android中做到这一点意味着只使用 JSE。

String abc = "a>10";
if(abc){
 // TO SOME TASK
}

任何帮助将不胜感激。

4

2 回答 2

2

我建议使用返回布尔结果的“助手”方法,因此语句看起来像这样

String abc = "a>10";

if(stringToConditional("a>b"))
{
  //TO SOME TASK
}

private boolean stringToConditional(String str)
{
  //code here
}

从那里,“助手”方法可以使用正则表达式将字符串分成三个部分。可以在此处找到有用的、教唆密集的教程。从那里,可以使用 JSE 方法解析 a 和 b。它看起来像这样:

String a = "1.21";
double a1 = Double.parseDouble(a); //a1 is now equal to 1.21

从那里开始,下一步是将条件字符串(“>”、“<=”、“==”等)与已知运算符列表进行比较,然后测试操作并将结果作为方法返回布尔返回。例如:

String operator = ">=";
if (operator.equals(">="))
{
  return a1>=b1;
}
...

希望我不是太不清楚或离题。我很乐意详细说明、澄清或简化。祝你好运!

于 2013-05-06T03:21:31.737 回答
0

在 Java 中,我们可以使用javaScriptEngine API

String condExptn="34>5&&78<90";
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
result = engine.eval(condExptn.toString().trim());
于 2020-09-04T12:57:47.497 回答