如何将字符串类型的算术表达式转换为整数?
How to convert an arithmetic expression of a string type to an integer?
这是我在 运行 这段代码之后的代码,我遇到异常:
fun main( args : Array<String>) {
var str:String = "(%d + %d)"
var str1:String
var a:Int = 12
var b:Int = 13
str1 = String.format(str,12,13)
var c:Int = str1.toInt()
print(c)
}
Exception 堆栈跟踪如下:
Exception in thread "main" java.lang.NumberFormatException: For input string: "(12 + 13)"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:638)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at MainKotlinKt.main(mainKotlin.kt:13)
请帮我解决。
kotlin .toInt()
用于将字符串转换为整数,其中字符串必须包含整数值。但是您已经使用表达式将字符串转换为整数。
您可以从 here
阅读更多内容
但是如果你想计算一个表达式,那么这可以用 kotlin 脚本引擎来完成。
示例:
val engine = ScriptEngineManager().getEngineByExtension("kts")!!
engine.eval("val x = 8")
val result = engine.eval("x + 2")
Assert.assertEquals(10, result)
您可以从
获取更多信息
首先,您的代码不正确,其次,如果您想在 kotlin 中转换数学表达式,那么我会说 kotlin 没有任何内置函数来评估数学表达式,str1.toInt()
也不会在这方面帮助您.
toInt() 用于将字符串转换为整数。例如 "10".toInt() = 10
。因此,我建议您在从 extression 中提取所需的值后手动执行。
这是我在 运行 这段代码之后的代码,我遇到异常:
fun main( args : Array<String>) {
var str:String = "(%d + %d)"
var str1:String
var a:Int = 12
var b:Int = 13
str1 = String.format(str,12,13)
var c:Int = str1.toInt()
print(c)
}
Exception 堆栈跟踪如下:
Exception in thread "main" java.lang.NumberFormatException: For input string: "(12 + 13)"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:638)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at MainKotlinKt.main(mainKotlin.kt:13)
请帮我解决。
kotlin .toInt()
用于将字符串转换为整数,其中字符串必须包含整数值。但是您已经使用表达式将字符串转换为整数。
您可以从 here
阅读更多内容但是如果你想计算一个表达式,那么这可以用 kotlin 脚本引擎来完成。
示例:
val engine = ScriptEngineManager().getEngineByExtension("kts")!!
engine.eval("val x = 8")
val result = engine.eval("x + 2")
Assert.assertEquals(10, result)
您可以从
首先,您的代码不正确,其次,如果您想在 kotlin 中转换数学表达式,那么我会说 kotlin 没有任何内置函数来评估数学表达式,str1.toInt()
也不会在这方面帮助您.
toInt() 用于将字符串转换为整数。例如 "10".toInt() = 10
。因此,我建议您在从 extression 中提取所需的值后手动执行。