gpt4 book ai didi

kotlin - Kotlin:检查字符串是否为数字

转载 作者:行者123 更新时间:2023-12-03 13:49:31 28 4
gpt4 key购买 nike

有没有一种简单的方法可以检查用户的输入是否为数字?在这里使用正则表达式和异常似乎太复杂了。

fun main {
val scan = Scanner(System.`in`)
val input = scanner.nextLine()
if (!input.isNumeric) {
println("You should enter a number!")
}
}

最佳答案

上面提到的方法将适用于number <= approximately 4*10^18本质上是Double的最大限制。
由于String本身是一个CharSequence,因此您无需检查所有字符是否都属于特定范围。

val integerChars = '0'..'9'

fun isNumber(input: String): Boolean {
var dotOccurred = 0
return input.all { it in integerChars || it == '.' && dotOccurred++ < 1 }
}

fun isInteger(input: String) = input.all { it in integerChars }

fun main() {
val input = readLine()!!
println("isNumber: ${isNumber(input)}")
println("isInteger: ${isInteger(input)}")
}
例子:
100234
isNumber: true
isInteger: true

235.22
isNumber: true
isInteger: false

102948012120948129049012849102841209849018
isNumber: true
isInteger: true

a
isNumber: false
isInteger: false
它的效率也很高,一旦发现任何不令人满意的条件,就不会分配内存并返回。
您还可以通过仅更改逻辑来检查负数(如果连字符是首字母),则可以应用条件 subSequence(1, length)跳过首字符。

关于kotlin - Kotlin:检查字符串是否为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65474874/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com