1. 问题:
取字符串中的一个char,再toInt,1被取值为49,导致if永远为true
先上示例代码:
val str = "1009"
if(str[0].toInt > 0){
...
}
按照预期效果,str的第0位应该大于等于1(str[0] >= 1),才会走if代码块,但事实并不如此(我取到的值:49)。
2. 解决:
kotlin采用的Unicode编码,而上文取出来的值由ASCII编码转换为Unicode,查证对应码表,的确如此,所以应该先toString。
val str = "1009"
if(str[0].toString.toInt > 0){
...
}