golangで文字列をトリミングしてかなりの文字列接頭辞を作成するエレガントな方法はありますか?私は開始のためのこの機能を持っています:golangで要求された長さの文字列接頭辞をutf-8のシンボルで扱っています
func prettyCrop(in string, cropLength int) string {
if len(in) < cropLength {
return in
} else {
in = in[0:cropLength]
in = strings.TrimRightFunc(in, func(r rune) bool {
if r == ' ' {
return true
}
return false
})
return in + "…"
}
}
それは十分に英語のテキストのために働くが、何かより複雑な問題がある。この例を参照してください。
prettyCrop("čřč čřč", 8) //čř?…
ここで期待したとおりにTrimRightFuncが機能しません。私はそれがčřč
を返すと期待しています。この関数が有効なutf-8文字列を返さないのはなぜですか?これのための図書館はありますか?どうすれば修正できますか?より良い解決策はありますか?