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 关注
- 95 浏览
添加回答
举报