我需要将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编写一个扩展函数,该函数将其文本值作为 double 值返回。

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

假定您要在输入不可解析的情况下获得0。然后,您可以轻松读取值:
val a = firstEditText.doubleValue() + secondEditText.doubleValue()
val b = a + 2

关于java - kotlin/java-是否有类似TryParse()的东西?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51231945/

10-14 18:49