将字符串解析为Int Kotlin

时间:2018-12-13 01:04:10

标签: android string kotlin numberformatexception

如何将字符串解析为 Int

从edittext获取值

我的代码:

var data = input.text.toString().trim().toInt()
    for (a in 0..data){
    }

但是我有错误

  

NumberFormatException:对于输入字符串“”

2 个答案:

答案 0 :(得分:2)

如评论中提到的Andreas,input.text.toString()。trim()的值为“”。这表明该错误在代码中的其他位置。但是,如果您希望能够在不引发异常的情况下处理这些错误,则可以使用toIntOrNull()并执行以下操作:

var data = input.text.toString().trim().toIntOrNull() ?: 0
for (a in 0..data){
    //...
}

这将确保在字符串无效的情况下数据等于0。

我不确定您收到的错误为什么会说“”,因为trim()应该把它变成了“”。确定要逐字发布错误消息吗?

答案 1 :(得分:0)

您的代码正确,但是input.text.toString().trim()的值不是Interger 确保它正确无误并按以下方式处理您的案件

var data: Int? = null
try {
      data = input.text.toString().trim().toInt()
} catch (ex: NumberFormatException) {
      // incorrect input
}
data?.let {
      for (a in 0..data) {
      // do something
      }
}