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

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


我想从中文“世界”中得到的是字母“ S”,除了“世”。</ p>



\ n

语言可以自动做到吗?</ p>
</ div>

展开原文

原文

I got a question here.I need to get the pinyin of a Chinese word using golang.For example:


What I want to get from Chinese "世界" is letter "S" except "世".


Can go language do this automatically?

dtmjl4427
dtmjl4427 这就是我想要的.github.com/axgle/pinyin
大约 4 年之前 回复
duan3601
duan3601 我知道。:)您的答案更好。将其编辑为“您可以将整个字符串转换为符文,以使用符文:=[]rune(str)进行其他操作。”但是我的5分钟用光了。
接近 5 年之前 回复
dtml3340
dtml3340 []rune(str)[0]是不必要的副本。
接近 5 年之前 回复
duanlou2917
duanlou2917 您可以获得第一种以各种方式指出的Unicode代码。funcfirstRune(strstring)rune{for_,r:=rangestr{returnr};返回0}或funcfirstRune(str字符串){如果len(str)>0{返回[]rune(str)[0]}否则{return0}},或者使用unicode或其他标准软件包的更好的方法。
接近 5 年之前 回复

2个回答



使用utf8包,您可以执行以下操作:</ p>

  func firstLetter 字符串)字符串{
_,大小:= utf8.DecodeRuneInString(s)
返回s [:size]
}
</ code> </ pre>

或</ p>

  func firstLetter(s字符串)字符串{
表示_,l:=范围s {
返回字符串(l)
}
返回“”
}
< / code> </ pre>

您不能执行 s [0] </ code>,因为那样会返回多字节符文的第一个字节。</ p>
</ DIV>

展开原文

原文

Using the utf8 package you can do something like:

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

or

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

You can't do s[0] since that would return the first byte of the multi-byte rune.

duansha8764
duansha8764 抱歉,也许我没有正确解释我想要的东西。您的答案就像得到字符串的第一个字母一样。 但这不是我想要的。我再次编辑问题。
接近 5 年之前 回复



使用 github .com / mozillazg / go-pinyin </ p>

 程序包主

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('界'))
}
</ code> </ pre>

如果您有 ve一个汉字字符串,您可以排列字符串以获取字符符文。</ p>
</ div>

展开原文

原文

Use 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('界'))
}

If you have string of Chinese characters, you can range the string to get rune of the chars.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐