添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
跳到主要内容

Kotlin程序检查字符串是否为数字

示例1:检查字符串是否为数字

import java.lang.Double.parseDouble

fun main(args: Array<String>) {

val string = "12345s15"
var numeric = true

try {
val num = parseDouble(string)
} catch (e: NumberFormatException) {
numeric = false
}

if (numeric)
println("$string 是数字")
else
println("$string 不是数字")
}

当您运行该程序时,输出将为:

12345s15 不是数字

在上面的程序中,我们有一个名为 string String ,其中包含要检查的字符串。我们还有一个布尔值 numeric ,用于存储最终结果是否为数字。

为了检查 string 是否只包含数字,在try块中,我们使用 Double parseDouble() 方法将字符串转换为 Double

如果它抛出错误(即 NumberFormatException 错误),这意味着 string 不是数字, numeric 被设置为 false 。否则,它是一个数字。

但是,如果您要检查多个字符串是否为数字,您需要将其更改为一个函数。而且,基于抛出异常的逻辑可能会相当昂贵。

相反,我们可以使用正则表达式的强大功能来检查字符串是否为数字,如下所示。

示例2:使用正则表达式(regex)检查字符串是否为数字

fun main(args: Array<String>) {

val string = "-1234.15"
var numeric = true

numeric = string.matches("-?\\d+(\\.\\d+)?".toRegex())

if (numeric)
println("$string 是数字")
else
println("$string 不是数字")
}

当您运行该程序时,输出将为:

-1234.15 是数字

在上面的程序中,我们没有使用try-catch块,而是使用正则表达式检查 string 是否为数字。这是通过String的 matches() 方法实现的。

matches() 方法中,

  • -? 允许字符串中有零个或多个 - 以表示负数。
  • \\d+ 检查字符串必须至少有1个或更多数字( \\d )。
  • (\\.\\d+)? 允许字符串中有零个或多个给定模式 (\\.\\d+) ,其中
  •