常用包实战分享一: golang 汉字转拼音码
包地址
github.com/mozillazg/go-pinyin
简单上手
安装
# go version>=1.17
go install github.com/mozillazg/go-pinyin/cli/pinyin@latest
# go version<1.17
go get -u github.com/mozillazg/go-pinyin/cli/pinyin
代码引用实现
package main
import (
"fmt"
"github.com/mozillazg/go-pinyin"
)
func main() {
hans := "中国人"
// 默认
a := pinyin.NewArgs()
fmt.Println(pinyin.Pinyin(hans, a))
// [[zhong] [guo] [ren]]
// 包含声调
a.Style = pinyin.Tone
fmt.Println(pinyin.Pinyin(hans, a))
// [[zhōng] [guó] [rén]]
// 声调用数字表示
a.Style = pinyin.Tone2
fmt.Println(pinyin.Pinyin(hans, a))
// [[zho1ng] [guo2] [re2n]]
// 开启多音字模式
a = pinyin.NewArgs()
a.Heteronym = true
fmt.Println(pinyin.Pinyin(hans, a))
// [[zhong zhong] [guo] [ren]]
a.Style = pinyin.Tone2
fmt.Println(pinyin.Pinyin(hans, a))
// [[zho1ng zho4ng] [guo2] [re2n]]
}
文档地址
pkg.go.dev/github.com/mozillazg/go...
我们常规只要首字母
演示代码:
// 增加对拼音码 的转换
a := pinyin.NewArgs()
a.Style = pinyin.FirstLetter
fmt.Println()
pymList := pinyin.Pinyin(medicine.Yptym, a)
// 因为得到是 [][]string 所以需要拼接
for _, pymVal := range pymList {
if len(pymVal) > 0 {
medicine.Pym += pymVal[0]
}
}
展示效果
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: