美文网首页
Golang拼音处理

Golang拼音处理

作者: EasyNetCN | 来源:发表于2021-11-11 17:41 被阅读0次
package utility

import (
    "regexp"
    "strings"

    "github.com/mozillazg/go-pinyin"
)

func GetPinyin(txt string) string {
    sb := new(strings.Builder)

    for _, c := range txt {
        if c > 128 {
            str := string([]rune{c})
            strs := pinyin.LazyConvert(str, nil)

            if len(strs) > 0 {
                sb.WriteString(strs[0])
            } else {
                sb.WriteString(str)
            }

        } else {
            sb.WriteString(string([]rune{c}))
        }
    }

    return strings.TrimSpace(sb.String())
}

func GetFirstSpell(txt string) string {
    sb := new(strings.Builder)

    for _, c := range txt {
        if c > 128 {
            str := string([]rune{c})
            strs := pinyin.LazyConvert(str, nil)

            if len(strs) > 0 {
                sb.WriteString(string(strs[0][0]))
            } else {
                sb.WriteString(str)
            }

        } else {
            r := regexp.MustCompile(`\W`)
            str := r.ReplaceAllString(string([]rune{c}), "")

            if str != "" {
                sb.WriteString(str)
            }
        }
    }

    return strings.TrimSpace(sb.String())
}

相关文章

网友评论

      本文标题:Golang拼音处理

      本文链接:https://www.haomeiwen.com/subject/hndgzltx.html