我必须使用Kotlin在Android上将字符串转换为double。
以下应该适用于Kotlin,但不适用(没有这样的方法):
var dbl = "1.0".toDouble()
以下Javaish方式也不起作用:
var dbl = Double.parseDouble("1.0")
显然, Android 上的String类既没有Kotlin API,Double也没有通常的Java API?
是否优雅方式在 Kotlin 上在Android 上运行?
现在,我正在使用此功能(此功能,但很难看):
var dbl = java.lang.Double.parseDouble("1.0")
该项目是使用Android Studio新创建的,使用以下版本:
ext.kotlin_version = '1.1.51'
minSdkVersion 23
targetSdkVersion 26
我认为这是Android API和Kotlin API之间的一些不匹配。
答案 0 :(得分:7)
方法就在那里,它不应该给你no方法异常。
尝试干净的Android版本。有a bug on Kotlin's issue tracker Gradle构建任务没有完全定义偶尔需要干净构建的所有内容。这已经针对最新版本的Kotlin进行了修复。
我要遵循以下几个步骤来尝试解决此问题:
1.1.60
。4.3.1
和Android插件3.0.0
.gradle
和.idea
文件夹),然后将您的项目重新导入Android Studio,然后重试。方法肯定存在,我可以使用它。
作为一种简单地让你再次移动并取消阻止你的方法,如果上述方法不起作用,你可以自己总是将以下功能添加到你的应用中,它也应该有效:
public inline fun String.toDouble(): Double = java.lang.Double.parseDouble(this)
答案 1 :(得分:2)
你也可以使用.toDouble(),这会很有帮助, 得到你的文字并轻松地将其转换为双倍值
N\d.*?(N\d)