我正在尝试编写一个函数
func Anonymize(name string) string
匿名化名称。以下是一些输入和输出对的示例,以便您了解它应该做什么:
Müller → M.
von der Linden → v. d. L.
Meyer-Schulze → M.-S.
该函数应该适用于由任意字符组成的名称。在实现此功能时,我有以下问题:
给定一个[]rune
or string
,我如何计算出我需要多少符文才能获得一个完整的角色,完整的意思是所有与角色对应的修饰符和组合重音也被采用。例如,如果输入是[]rune{0x0041, 0x0308, 0x0066, 0x0067}
(对应于字符串 ÄBC,其中 Ä 表示为 A 和组合分叉符的组合),则函数应返回 2,因为前两个符文产生第一个字符 Ä。如果我只拿了第一个符文,我会得到不正确的 A。
我需要这个问题的答案,因为我想匿名的名字可能以重音字符开头,我不想删除重音。