我有一个类似var string = "5+7+10"的字符串有没有办法把它变成一个双精度数然后把它们加起来var double = 22.0我试图将运算符和数字存储在单独的变量中,但当我试图将它们相加时,它仍然不起作用
var string = "5+7+10"
var double = 22.0
sqxo8psd1#
你不可能把它变成一个整体的双重,但是如果你把元素分开,一个一个地取,你就可以做到:
var string = "5+7+10" val array: List<String> = string.split("+") var sumDouble: Double = 0.0 for (element in array) { sumDouble += java.lang.Double.parseDouble(element) } println(sumDouble.toString())
这将给予sumDouble = 22.0作为双精度浮点数。
2cmtqfgy2#
使用KotlinSpirit库https://github.com/tiksem/KotlinSpirit
val r = double % '+' r.compile().parseGetResultOrThrow("5+13.4+6").sum()
2条答案
按热度按时间sqxo8psd1#
你不可能把它变成一个整体的双重,但是如果你把元素分开,一个一个地取,你就可以做到:
这将给予sumDouble = 22.0作为双精度浮点数。
2cmtqfgy2#
使用KotlinSpirit库https://github.com/tiksem/KotlinSpirit