这是我的代码后运行这段代码,我得到异常:
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 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中转换数学表达式,那么我会说kotlin没有任何内置函数来计算数学表达式,也没有str1。toInt()
将在这方面帮助您。
toInt()用于将字符串转换为整数。例如“10”。toInt()=10
。因此,我建议您在从Extraction中提取所需值后手动执行。
kotlin. toInt()
用于将字符串转换为整数,其中字符串必须包含整数值。
你可以从这里读到更多
但是如果你想计算一个表达式,那么这可以通过kotlin脚本引擎来完成。
例子:
val engine = ScriptEngineManager().getEngineByExtension("kts")!!
engine.eval("val x = 8")
val result = engine.eval("x + 2")
Assert.assertEquals(10, result)
你可以从这里获得更多信息
问题内容: 我想了一下,想到了一个有趣的问题,假设我们有一个配置(输入)文件,其中: 此外,我们还有s 的列表: 有没有办法将s(等)转换为代表lambda表达式的s?然后可以用作: 我将如何编写这样的方法? 我可以从JDK / JRE中重用吗? 我需要自己编写所有内容吗? 是否有可能将范围缩小到仅捕获lambda的其他内容? 问题答案: 马可对这个问题的评论是正确的。您无法从文件中读取裸Java
问题内容: 我正在从在Varchar中具有原始提要的表中导入数据,我需要将varchar中的列导入到字符串列中。我尝试使用以及,但是却遇到了错误,因为有一些空字段,我需要将它们作为空或null检索到新表中。 请让我知道是否有相同的功能。 问题答案: 大胆猜测:如果您的值是一个空字符串,则可以使用NULLIF将其替换为NULL:
问题内容: 此选择语句为我提供了算术错误消息: 尽管这一方法有效: 数据可能出问题了(我已经检查了空值,但没有一个)? 问题答案: 发现问题出在日期设置为9999-12-31时,可能要处理大数以十进制表示。从十进制更改为浮点,并且所有事物都像魅力一样起作用。
问题内容: 我有以下查询: 无论我注释掉什么条件或聚合,总是会出现以下错误:。 我可以从这里去哪里?如何进一步调试? 编辑:样本数据 问题答案: 您是否尝试过将jaguarstartup时间强制转换为avg聚合中的bigint,如下所示… AVG(CAST(mc.JaguarStartupTime AS BIGINT)) 这应该解决算术溢出。 要计算平均平均值,服务器需要首先能够对所有int求和,
问题内容: 我试图从返回的字符串转换成。Go中惯用的方式是什么? 问题答案: 例如,
我试图从标准输入中读取一些非常大的数字,并将它们相加。 然而,要添加到BigInteger,我需要使用