Thanks to visit codestin.com
Credit goes to github.com

Skip to content

bitszhang/han2num

han2num

一个高性能的中文数字与阿拉伯数字转换库,使用 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) // 输出: 四五
    }
}

🎯 转换模式

CN2AN 模式

  • StrictMode ("strict"): 严格模式,严格按照中文数字拼写
  • NormalMode ("normal"): 普通模式,转换简单数字序列
  • SmartMode ("smart"): 智能模式,处理混合的中文和阿拉伯数字

AN2CN 模式

  • 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 项目的设计思路
  • 感谢所有贡献者的支持

📞 联系方式

⭐ 支持项目

如果这个项目对您有帮助,请给它一个星标!您的支持是我们持续改进的动力。


⭐ 如果这个项目对您有帮助,请给它一个星标!

About

一个高性能的中文数字与阿拉伯数字转换库,使用 Go 语言实现

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages