java - 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 中
解决方案
您可以编写一个扩展函数EditText
,它将其文本值作为双精度值返回。
fun EditText.doubleValue() = text.toString().toDoubleOrNull() ?: 0.0
这假设您希望在无法解析的输入的情况下获得 0。然后您可以轻松读取值:
val a = firstEditText.doubleValue() + secondEditText.doubleValue()
val b = a + 2
推荐阅读
- python - 用于 python 的开源 Whatsapp 业务 API 客户端
- reactjs - 关闭对话框时更改页面地址(材质 ui,react-router)
- facebook - Facebook 帖子中的 URL 添加了额外的“www”。
- swift - 向观察者添加完成时应用程序崩溃
- javascript - 当 TextField 在 Material UI 中聚焦时显示帮助文本
- html - “'”赛普拉斯中的单引号符号
- python - 如何使用 Python 的多处理模块多次运行一个函数?
- java - SimpleDateFormat 解析 JDK 11 和 12 与 JDK 14
- c - 创建后立即对哈希表条目进行读取访问冲突
- javascript - 将数据从子组件传递到父组件在反应中不起作用