Kotlin程序檢查字符串是否為數(shù)字

Kotlin 實例大全

在此程序中,您將學(xué)習(xí)不同的技術(shù)來檢查Kotlin中的字符串是否為數(shù)字。

示例1:檢查字符串是否為數(shù)字

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 是一個數(shù)字")
    else
        println("$string 不是一個數(shù)字")
}

運行該程序時,輸出為:

12345s15 不是一個數(shù)字

在上面的程序中,我們有一個名為string的字符串,其中包含要檢查的字符串。 我們還有一個布爾值numeric,用于存儲最終結(jié)果是否為數(shù)字。
為了檢查string是否只包含數(shù)字,在try塊中,我們使用Double的parseDouble()方法將字符串轉(zhuǎn)換為Double。

如果拋出錯誤(即NumberFormatException錯誤),則表示string不是數(shù)字,并設(shè)置 numeric 為false。否則,這是一個數(shù)字。

但是,如果要檢查是否有一定數(shù)量的字符串,則需要將其更改為函數(shù)。而且,邏輯基于拋出異常,這可能會非常昂貴。

相反,我們可以使用正則表達(dá)式的功能來檢查字符串是否為數(shù)字,如下所示。

示例2:使用正則表達(dá)式(regex)檢查字符串是否為數(shù)字

fun main(args: Array<String>) {

    val string = "-1234.15"
    var numeric = true

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

    if (numeric)
        println("$string 是一個數(shù)字")
    else
        println("$string 不是一個數(shù)字")
}

運行該程序時,輸出為:

-1234.15 是一個數(shù)字

在上面的程序中,我們使用 regex 來檢查 string 是否為數(shù)字,而不是使用try-catch塊。這是使用String的matches()方法完成的。

在matches()方法中

  • -? 允許零或更大-的字符串中的負(fù)數(shù)。

  • \\d+ 檢查字符串必須至少包含1個或多個數(shù)字(\\d)。

  • (\\.\\d+)? 允許零個或多個給定模式(\\.\\d+),其中

    • \\.檢查字符串是否包含.(小數(shù)點)

    • 如果是,則應(yīng)至少跟一個或多個數(shù)字\\d+。

這是等效的Java代碼:檢查字符串是否為數(shù)字的Java程序。

Kotlin 實例大全

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清