gpt4 book ai didi

string - Go Lang 中的瑞典语字符

转载 作者:IT王子 更新时间:2023-10-29 01:24:42 25 4
gpt4 key购买 nike

以下函数不适用于瑞典语字符,即 å/Å/ä/Ä/ö/Ö

func StartsWithUppercase(s string) bool {
return (string(s[0]) == strings.ToUpper(string(s[0])))
}

如何继续检查字符串是否以大写瑞典语字符开头?

w := "åÅäÄöÖ"
for i := 0; i < len(w); i++ {
fmt.Println(i, w[i])
}

结果:

 1. 195 
2. 165
3. 195
4. 133
5. 195
6. 164
7. 195
8. 132
9. 195
10. 182
11. 195
12. 150

最佳答案

索引一个 string 索引它的字节而不是它的 runes(rune 是一个 unicode 代码点)。

您要做的是检查 string 的第一个字符 (rune),而不是 UTF-8 编码形式的第一个字节。为此,标准库中提供了支持:unicode.IsUpper() .

要获取第一个 rune,您可以将 string 转换为一段 runes,并获取第一个元素(在索引 0 处)。

ins := []string{
"å/Å/ä/Ä/ö/Ö",
"Å/ä/Ä/ö/Ö"}

for _, s := range ins {
fmt.Println(s, unicode.IsUpper([]rune(s)[0]))
}

输出:

å/Å/ä/Ä/ö/Ö false
Å/ä/Ä/ö/Ö true

关于string - Go Lang 中的瑞典语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28719523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com