kotlin判断字符串是否全数字
前言
kotlin
中如何判断一个字符串里没给字符是不是都是数字
方法
使用
all()
方法1
2
3
4
5
6
7
8
9
10//Kotlin 不提供任何标准函数来检查给定字符串是否为数字。但是,这可以通过 all() 函数判断
fun isNumber(s: String?): Boolean {
return if (s.isNullOrEmpty()) false else s.all { Character.isDigit(it) }
}
fun main() {
val s = "100"
if (isNumber(s)) print("Number") else print("Not a Number") // Number
}使用
toInt()
方法1
2
3
4
5
6
7
8
9
10
11
12
13
14//这里的技巧是将给定的字符串转换为整数 toInt() 函数,它生成 NumberFormatException 对于非数字字符串。请注意,当值超出整数范围时,此函数将失败。
fun isNumber(s: String): Boolean {
return try {
s.toInt()
true
} catch (ex: NumberFormatException) {
false
}
}
fun main() {
val s = "100"
if (isNumber(s)) print("Number") else print("Not a Number") // Number
}使用
toIntOrNull
方法1
2
3
4
5
6
7
8
9
10
11
12
13//可以使用 toIntOrNull() 函数,它将字符串解析为 Int 数字,如果字符串不是数字的有效表示形式,则返回结果或 null。
fun isNumber(s: String): Boolean {
return when(s.toIntOrNull())
{
null -> false
else -> true
}
}
fun main() {
val s = "100"
if (isNumber(s)) print("Number") else print("Not a Number") // Number
}使用
matches
方法1
2
3
4
5
6
7
8
9
10//使用正则表达式来检查字符串是否为数字 matches() 函数,它告诉这个字符串是否匹配给定的正则表达式。
fun isNumber(s: String?): Boolean {
return !s.isNullOrEmpty() && s.matches(Regex("\\d+"))
}
fun main() {
val s = "100"
if (isNumber(s)) print("Number") else print("Not a Number") // Number
}