广告位联系
返回顶部
分享到

Golang实现将中文转化为拼音

Golang 来源:互联网 作者:佚名 发布时间:2023-02-05 21:41:17 人浏览
摘要

导语:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英文。 官方demo 参考了github.com/mozillazg/go-pinyi

导语:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英文。

官方demo 参考了github.com/mozillazg/go-pinyin

搜到github.com/Chain-Zhang/pinyin的资料多一点,但貌似不维护了。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

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]]

 

    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]

}

我想要的是后期把中文传入并转换成拼音 类似于用户名。

创建main.go

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

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

}

1

2

go get -u github.com/mozillazg/go-pinyin

go run main.go

结果图


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/xujiamin0022016/article/details/110367798
相关文章
  • 向Rust学习Go考虑简单字符串插值特性示例解析
    fmt.Printf或fmt.Sprintf写拼装字符串业务 在日常开发 Go 工程中,我们经常会用fmt.Printf或fmt.Sprintf去写类似的拼装字符串的业务。 如下代码:
  • Golang实现将中文转化为拼音

    Golang实现将中文转化为拼音
    导语:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英
  • Go语言实现猜谜小游戏

    Go语言实现猜谜小游戏
    本文是介绍用Go实现一个猜谜小游戏,就是程序先生成一个随机数num,然后让用户来猜生成的数是多少,如果猜的数比num小就提示用户猜测的
  • go微服务PolarisMesh源码解析服务端启动流程
    polaris-server作为PolarisMesh的控制面,该进程主要负责服务数据、配置数据、治理规则的管理以及下发至北极星SDK以及实现了xDS的客户端。 po
  • go sync.Map基本原理深入解析
    我们知道,go 里面提供了map这种类型让我们可以存储键值对数据,但是如果我们在并发的情况下使用map的话,就会发现它是不支持并发地进
  • Golang的Fork/Join实现代码

    Golang的Fork/Join实现代码
    做过Java开发的同学肯定知道,JDK7加入的Fork/Join是一个非常优秀的设计,到了JDK8,又结合并行流中进行了优化和增强,是一个非常好的工具
  • Golang嵌入资源文件实现步骤
    Go文档中展示了多种方式实现外部资源嵌入,包括文本文件、图片、ios文件等: 文本文件 1 2 3 4 5 6 7 package main import _ embed //go:embed schema.sql
  • golang敏感词过滤的实现
    用golang写了敏感词过滤的工具,主要用来检测用户昵称中是否存在敏感词,同时提供剔除转移字符的功能。 可以先将敏感词库存放在一个
  • go语言题解LeetCode228汇总区间介绍
    原题链接 : 228. 汇总区间 给定一个 无重复元素的有序整数数组nums。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,
  • Go使用Gin+mysql实现增删改查的详细实例

    Go使用Gin+mysql实现增删改查的详细实例
    0.前置知识 Go中的struct。 mysql、Gin框架。 Web基础。 1.架构 使用mysql作为数据库,Gin作为Web框架。 2.功能模块 1.自定义Person结构体 2.实现对P
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计