繁体   English   中英

kotlin / java-是否有类似TryParse()的东西?

[英]kotlin / java - Is there something like TryParse()?

我需要将3 editText转换为Double并进行自动计算。 问题是:在Java中,如果editText字符串为null,则使用Double.parseDouble()引发异常,因此我必须使用try catch。 在Kotlin中,使用toDoubleOrNull必须检查“ if”是否为null。

现在,对于2个editText,我必须执行val a = firstDobule + secondDouble ,然后val b = a + 2但是,使用上述方法,我无法分开计算:它需要同时转换所有3个editText,我想一次转换单数editText。

为了使您更好地理解,这是C#中的代码:

 Double.TryParse(firstEditText.Text, out Double firstDouble);
 Double.TryParse(secondEditText.Text, out Double secondDOuble);

Double a = firstDouble + secondDOuble;
Double b = a + 2;

在C#中,使用TryParse不会引发任何异常,也不需要手动检查是否为null。 我想这样做,但是在Kotlin或Java中

您可以为EditText编写一个扩展函数,该函数将其文本值作为双EditText值返回。

fun EditText.doubleValue() = text.toString().toDoubleOrNull() ?: 0.0

假设您要在输入不可解析的情况下获得0。 然后,您可以轻松读取值:

val a = firstEditText.doubleValue() + secondEditText.doubleValue()
val b = a + 2

我认为@Pawel在正确的轨道上,但是,我将定义一个extension属性而不是一个extension函数,因为它在语义上似乎更合适:

val EditText.doubleValue: Double
    get() = text.toString().toDoubleOrNull() ?: 0.0

用法如下所示:

val a = firstEditText.doubleValue + secondEditText.doubleValue
val b = a + 2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM