Golang實(shí)現(xiàn)將中文轉(zhuǎn)化為拼音
導(dǎo)語:新用戶入職 創(chuàng)建一系列賬號比較麻煩,打算通過接口傳入姓名進(jìn)行初始化。想把姓名轉(zhuǎn)化成拼音。因?yàn)橛行┵~號即需要中文也需要英文。
官方demo 參考了github.com/mozillazg/go-pinyin
搜到github.com/Chain-Zhang/pinyin的資料多一點(diǎn),但貌似不維護(hù)了。
package main
import (
"fmt"
"github.com/mozillazg/go-pinyin"
)
func main() {
hans := "中國人"
// 默認(rèn)
a := pinyin.NewArgs()
fmt.Println(pinyin.Pinyin(hans, a))
// [[zhong] [guo] [ren]]
// 包含聲調(diào)
a.Style = pinyin.Tone
fmt.Println(pinyin.Pinyin(hans, a))
// [[zhōng] [guó] [rén]]
// 聲調(diào)用數(shù)字表示
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]]
fmt.Println(pinyin.LazyPinyin(hans, pinyin.NewArgs()))
// [zhong guo ren]
fmt.Println(pinyin.Convert(hans, nil))
// [[zhong] [guo] [ren]]
fmt.Println(pinyin.LazyConvert(hans, nil))
// [zhong guo ren]
}
我想要的是后期把中文傳入并轉(zhuǎn)換成拼音 類似于用戶名。
創(chuàng)建main.go
package main
import (
"fmt"
"github.com/mozillazg/go-pinyin"
"strings"
"reflect"
"github.com/astaxie/beego"
)
func main() {
hans := "中國人"
a := pinyin.LazyConvert(hans, nil)
// [zhong guo ren]
var test []string = []string{}
for a, v := range a{
beego.Info(v)
beego.Info(a)
if a == 0 {
test = append(test, v)
} else {
test = append(test, ",")
test = append(test, v)
}
}
beego.Info("處理1")
beego.Info(test)
// 通過這一條處理 strings.Trim
result := strings.Trim(fmt.Sprint(test), "[]")
// result := strings.Replace(strings.Trim(fmt.Sprint(test), "[]"), " ", ",", -1)
beego.Info(result)
beego.Info(reflect.TypeOf(result))
result2 := strings.Replace(result, " , ", "", -1)
beego.Info(result2)
// zhongguoren
}
go get -u github.com/mozillazg/go-pinyin go run main.go
結(jié)果圖

到此這篇關(guān)于Golang實(shí)現(xiàn)將中文轉(zhuǎn)化為拼音的文章就介紹到這了,更多相關(guān)Golang中文轉(zhuǎn)拼音內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Go語言寫一個(gè)Http?Server的實(shí)現(xiàn)
本文主要介紹了使用Go語言寫一個(gè)Http?Server的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
golang進(jìn)程在docker中OOM后hang住問題解析
這篇文章主要介紹了golang進(jìn)程在docker中OOM后hang住問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
一個(gè)Pod調(diào)度失敗后重新觸發(fā)調(diào)度的所有情況分析
這篇文章主要為大家介紹了一個(gè)Pod調(diào)度失敗后重新觸發(fā)調(diào)度的所有情況分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04

