Golang实现将中文转化为拼音
导语:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进开发者_JAVA开发行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英文。
官方demo 参考了github.com/mozillazg/go-pinyin
搜到github.com/Chain-Zhang/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 www.devze.com= pinyin.Tone fmt.Println(pinyin.Pinyin(hans, a)) // [[zhng] [gu] [rn]] // 声调用数字表示 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.phpPrintln(piYNUYaWnyin.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] }
我想要的是后期把中文传入并转换成拼音 类似于用户名。
创建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) } } YNUYaW 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
结果图
到此这篇关于golang实现将中文转化为拼音的文章就介绍到这了,更多相关Golang中文转拼音内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
精彩评论