如何使用Go语言获得中文首字母(拼音)?

时间:2015-08-20 05:05:02

标签: go

我在这里有一个问题。我需要使用golang来获取中文单词的拼音。例如:

我想从中文"世界"是字母" S"除了"世"。

语言可以自动执行此操作吗?

2 个答案:

答案 0 :(得分:4)

使用utf8软件包,您可以执行以下操作:

func firstLetter(s string) string {
    _, size := utf8.DecodeRuneInString(s)
    return s[:size]
}

func firstLetter(s string) string {
    for _, l := range s {
        return string(l)
    }
    return ""
}

你不能做s[0]因为那会返回多字节符文的第一个字节。

答案 1 :(得分:0)

使用github.com/mozillazg/go-pinyin

package main                                                               

import (
        "fmt"                                                                        
        "github.com/mozillazg/go-pinyin"                                        
)                                                                               

var a = pinyin.NewArgs()                                                        

func FirstLetterOfPinYin(r rune) string {                                       
        result := pinyin.Pinyin(string(r), a)                                   
        return string(result[0][0][0])                                          
}

func main() {
        fmt.Println(FirstLetterOfPinYin('世'))
        fmt.Println(FirstLetterOfPinYin('界'))
}

如果你有中文字符串,你可以range the string获得字符的符文。