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

Arf*_*ann 1 java kotlin

我需要将 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;
Run Code Online (Sandbox Code Playgroud)

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

Paw*_*wel 5

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

fun EditText.doubleValue() = text.toString().toDoubleOrNull() ?: 0.0
Run Code Online (Sandbox Code Playgroud)

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

val a = firstEditText.doubleValue() + secondEditText.doubleValue()
val b = a + 2
Run Code Online (Sandbox Code Playgroud)