在不使用脚本引擎的情况下计算 kotlin 中的字符串表达式



我想在不使用脚本引擎的情况下计算字符串表达式:

字符串表达式可以如下所示:

"((真&(!假(||真(&&真(&真"

任何人都知道如何使用 kotlin 在 android 中完成此操作

谢谢

Kotlin Android


app.gradle file

添加新依赖项

dependencies {
implementation 'net.objecthunter:exp4j:0.4.8'
}

主.kt 文件

var value = TextView.text.toString()
var result = ExpressionBuilder(value).build().evaluate()

我知道我的回答在字符串表达式包含真、假、&&、||、! 和 (( 的情况下对您没有帮助。但是对于那些想要计算数学表达式的人,我发现这个库几乎可以处理所有数学运算符。

将其添加到您的项目中并以这种方式使用它

// In root build.gradle
repositories {
maven {
url  "https://dl.bintray.com/kaendagger/KParser"
}
} 
//Add in the dependencies
dependencies{
implementation 'io.kaen.dagger:KParser-jvm:0.1.1'
}

然后在你的代码中,你可以做这样的事情

val parser = ExpressionParser()
val result = parser.evaluate("5+1+cos(PI)-2*2/4")
println(result)

最新更新