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

Kotlin 实例大全

在此程序中,您将学习不同的技术来检查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的字符串,其中包含要检查的字符串。 我们还有一个布尔值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 是一个数字

在上面的程序中,我们使用 regex 来检查 string 是否为数字,而不是使用try-catch块。这是使用String的matches()方法完成的。

在matches()方法中

  • -? 允许零或更大-的字符串中的负数。

  • \\d+ 检查字符串必须至少包含1个或多个数字(\\d)。

  • (\\.\\d+)? 允许零个或多个给定模式(\\.\\d+),其中

    • \\.检查字符串是否包含.(小数点)

    • 如果是,则应至少跟一个或多个数字\\d+。

这是等效的Java代码:检查字符串是否为数字的Java程序

Kotlin 实例大全