常用包实战分享一: 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]
   }
}

展示效果

包分享: golang 汉字转拼音码

本作品采用《CC 协议》,转载必须注明作者和本文链接
嗨,我是波波。曾经创业,有收获也有损失。我积累了丰富教学与编程经验,期待和你互动和进步! 公众号:上海PHP自学中心 付费知识星球:破解面试:程序员的求职导师
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
司机 @ 欣昊玉
文章
273
粉丝
339
喜欢
558
收藏
1107
排名:64
访问:12.2 万
私信
所有博文
社区赞助商