1 回答

TA貢獻1844條經驗 獲得超8個贊
使用runenames包根據名稱識別數字。
這不是標準庫包,但它是golang.org/x/的一部分
這些包是 Go 項目的一部分,但在主 Go 樹之外。它們是在比 Go 核心更寬松的兼容性要求下開發的。使用“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
}
該軟件包確實提到了一個文件https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt,它似乎有每個字符的更多信息,包括指定字符在純 ASCII 中的數字,但是,此包僅提供名稱。僅瀏覽文檔,名稱似乎遵循whatDigit函數中顯示的模式。
- 1 回答
- 0 關注
- 106 瀏覽
添加回答
舉報