首页 > 解决方案 > kotlin / java - 有没有像 TryParse() 这样的东西?

问题描述

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

现在,我必须使用 2 个 editTextval 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 中

标签: javakotlin

解决方案


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

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

这假设您希望在无法解析的输入的情况下获得 0。然后您可以轻松读取值:

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

推荐阅读