1 回答

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用runenames包根據(jù)名稱(chēng)識(shí)別數(shù)字。
這不是標(biāo)準(zhǔn)庫(kù)包,但它是golang.org/x/的一部分
這些包是 Go 項(xiàng)目的一部分,但在主 Go 樹(shù)之外。它們是在比 Go 核心更寬松的兼容性要求下開(kāi)發(fā)的。使用“go get”安裝它們。
import (
"golang.org/x/text/unicode/runenames"
"fmt"
"strings"
)
func whatDigit(digit rune) int {
var name = runenames.Name(digit)
switch {
case strings.Contains(name, "DIGIT ZERO"):
return 0
case strings.Contains(name, "DIGIT ONE"):
return 1
case strings.Contains(name, "DIGIT TWO"):
return 2
case strings.Contains(name, "DIGIT THREE"):
return 3
case strings.Contains(name, "DIGIT FOUR"):
return 4
case strings.Contains(name, "DIGIT FIVE"):
return 5
case strings.Contains(name, "DIGIT SIX"):
return 6
case strings.Contains(name, "DIGIT SEVEN"):
return 7
case strings.Contains(name, "DIGIT EIGHT"):
return 8
case strings.Contains(name, "DIGIT NINE"):
return 9
default:
return -1
}
return 0
}
該軟件包確實(shí)提到了一個(gè)文件https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt,它似乎有每個(gè)字符的更多信息,包括指定字符在純 ASCII 中的數(shù)字,但是,此包僅提供名稱(chēng)。僅瀏覽文檔,名稱(chēng)似乎遵循whatDigit函數(shù)中顯示的模式。
- 1 回答
- 0 關(guān)注
- 104 瀏覽
添加回答
舉報(bào)