一个高性能的中文数字与阿拉伯数字转换库,使用 Go 语言实现。
- 🔢 双向转换: 支持中文数字 ↔ 阿拉伯数字的双向转换
- 🎯 多种模式: 提供严格模式、普通模式、智能模式等多种转换策略
- 🚀 高性能: 使用 Go 语言实现,性能优异
- 🧪 完整测试: 包含单元测试和性能测试
- 📚 丰富示例: 提供详细的使用示例和文档
- 🎨 灵活配置: 支持自定义转换选项和增强功能
han2num/
├── .gitignore # 忽略文件规则
├── LICENSE # 开源协议
├── README.md # 项目介绍
├── CONTRIBUTING.md # 贡献指南
├── CHANGELOG.md # 版本更新日志
├── SECURITY.md # 安全政策
├── CODE_OF_CONDUCT.md # 行为准则
├── go.mod # Go 模块文件
├── go.sum # Go 依赖校验
├── .github/ # GitHub 配置文件
├── han2num.go # 主要 API 和转换逻辑
├── converter.go # 核心转换器实现
├── config.go # 配置和增强功能
├── han2num_test.go # 单元测试
├── performance_test.go # 性能测试
└── examples/ # 使用示例
├── main.go # 基础功能示例
└── enhanced.go # 增强功能示例
# 使用 go get 安装
go get github.com/bitszhang/han2num
# 或者克隆项目
git clone https://github.com/bitszhang/han2num.git
cd han2num
go mod tidy
package main
import (
"fmt"
"github.com/bitszhang/han2num"
)
func main() {
// 中文数字转阿拉伯数字
result, err := han2num.CN2AN("一百二十三", "strict")
if err == nil {
fmt.Println(result) // 输出: 123
}
// 阿拉伯数字转中文数字
result, err = han2num.AN2CN("123", "low")
if err == nil {
fmt.Println(result) // 输出: 一百二十三
}
// 直译模式:逐位转换
result, err = han2num.AN2CN("123", "direct")
if err == nil {
fmt.Println(result) // 输出: 一二三
}
result, err = han2num.AN2CN("45", "direct")
if err == nil {
fmt.Println(result) // 输出: 四五
}
}
- StrictMode ("strict"): 严格模式,严格按照中文数字拼写
- NormalMode ("normal"): 普通模式,转换简单数字序列
- SmartMode ("smart"): 智能模式,处理混合的中文和阿拉伯数字
- LowMode ("low"): 小写模式,输出小写中文数字(如:123 → 一百二十三)
- UpMode ("up"): 大写模式,输出大写中文数字(如:123 → 壹佰贰拾叁)
- RMBMode ("rmb"): 人民币模式,输出人民币格式(如:123 → 壹佰贰拾叁元整)
- DirectMode ("direct"): 直译模式,逐位转换(如:123 → 一二三,45 → 四五)
go test -v
go test -bench=. -benchmem
go fmt
go vet
go test -v
go build
go run examples/main.go
go run examples/enhanced.go
项目包含完整的性能测试套件,支持:
- 不同转换模式的性能对比
- 不同输入长度的性能测试
- 内存分配分析
- 并发性能测试
运行性能测试:
go test -bench=. -benchmem
欢迎贡献代码!请查看 CONTRIBUTING.md 了解贡献指南。
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
如果您发现安全漏洞,请查看 SECURITY.md 了解如何报告。
查看 CHANGELOG.md 了解版本更新历史。
- 参考了 cn2an 项目的设计思路
- 感谢所有贡献者的支持
- 项目主页: https://github.com/bitszhang/han2num
- 问题反馈: Issues
- 讨论交流: Discussions
- 安全报告: Security
如果这个项目对您有帮助,请给它一个星标!您的支持是我们持续改进的动力。
⭐ 如果这个项目对您有帮助,请给它一个星标!