为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 go 在字符串中查找重音字母?

如何使用 go 在字符串中查找重音字母?

Go
杨__羊羊 2023-01-03 10:14:39
给定一个表示单词的字符串var word和一个表示字母的字符串var letter,我如何计算单词中重音字母的数量?如果var letter是一个非重音单词,我的代码可以工作,但是当字母是重音或任何特殊字符时,var counter打印数字 0。package mainimport "fmt"func main() {    word := "cèòài"    letter := "è"    var counter int    for i := 0; i < len(word); i++ {        if string(word[i]) == letter {            counter++        }    }    fmt.Print(counter)} 我想这个错误是由于一些编码问题引起的,但我不太明白我需要研究什么。
查看完整描述

2 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

如何利用:strings.Count

package main


import (

    "fmt"

    "strings"

)


func main() {

    word := "cèòài"

    letter := "è"

    letterOccurences := strings.Count(word, letter)

    fmt.Printf("No. of occurences of \"%s\" in \"%s\": %d\n", letter, word, letterOccurences)

}

输出:


No. of occurences of "è" in "cèòài": 1


查看完整回答
反对 回复 2023-01-03
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

字符串中的字母(又名符文)可能与字节偏移量不完全匹配:


要在其各个符文上迭代一个字符串:


for pos, l := range word {

    _ = pos // byte position e.g. 3rd rune may be at byte-position 6 because of multi-byte runes


    if string(l) == letter {

        counter++

    }

}

https://go.dev/play/p/wZOIEedf-ee


查看完整回答
反对 回复 2023-01-03
  • 2 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信