在 Golang 中檢查 Rune 是否為十進位制數字


Rune 是一個 Unicode 程式碼點,在 Go 中用作 int32 型別的別名。它常用於表示字串中的單個字元。我們有時需要確定 rune 是否表示十進位制數字。本文將介紹如何在 Go 中確定 rune 是否為十進位制數字。

使用 unicode.IsDigit() 函式

為了處理 Unicode 程式碼點,Go 有 unicode 包,其中包含函式。要確定特定的 rune 是否為十進位制數字,請使用此包的 IsDigit() 函式。

可以將 rune 作為引數傳遞給 IsDigit() 函式,該函式返回一個布林值,指示 rune 是否為十進位制數字。例如 -

示例

package main

import (
   "fmt"
   "unicode"
)

func main() {
   r := '9'
   if unicode.IsDigit(r) {
      fmt.Printf("%c is a decimal digit\n", r)
   } else {
      fmt.Printf("%c is not a decimal digit\n", r)
   }
}

在這個例子中,我們使用了 IsDigit() 函式來檢查 rune '9' 是否為十進位制數字。在這種情況下,IsDigit() 函式返回 true,因此輸出將為 -

輸出

9 is a decimal digit

類似地,我們可以使用 IsDigit() 函式檢查其他 rune 是否為十進位制數字。

將 Rune 轉換為字串並進行檢查

如果我們有一個 rune,我們想檢查它是否為十進位制數字,我們可以將其轉換為字串並檢查該字串是否只包含數字。我們可以使用 strconv.Itoa() 函式將 rune 轉換為字串,並使用 strings.ContainsAny() 函式檢查字串是否只包含數字。

示例

package main

import (
   "fmt"
   "strconv"
   "strings"
)

func main() {
   r := '5'
   s := strconv.Itoa(int(r))
   if strings.ContainsAny(s, "0123456789") {
      fmt.Printf("%c is a decimal digit\n", r)
   } else {
      fmt.Printf("%c is not a decimal digit\n", r)
   }
}

在這個例子中,我們使用 strconv.Itoa() 函式將 rune '5' 轉換為字串。然後,我們使用 strings.ContainsAny() 函式檢查字串是否只包含數字。如果字串包含任何指定的字元,則 ContainsAny() 函式返回 true,在本例中,這些字元是從 0 到 9 的數字。由於 '5' 是十進位制數字,因此輸出將為 -

輸出

5 is a decimal digit

結論

在 Go 中,我們可以使用 unicode.IsDigit() 函式來檢查給定的 rune 是否為十進位制數字。我們還可以使用 strconv.Itoa() 和 strings.ContainsAny() 函式將 rune 轉換為字串並檢查字串是否只包含數字。在使用 Go 處理文字和解析資料時,瞭解如何檢查 rune 是否為十進位制數字可能很有用。

更新於: 2023-04-07

2K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.