go 算法 查询字符在字符串中的位置

在utf8字符串判断是否包含指定字符串,并返回下标。
"北京天安门最美丽" , "天安门"
结果:2

解答:

1import ( 2 "fmt" 3 "strings" 4) 5 6func main(){ 7 fmt.Println(Utf8Index("北京天安门最美丽", "天安门")) 8 fmt.Println(strings.Index("北京天安门最美丽", "男")) 9 fmt.Println(strings.Index("", "男")) 10 fmt.Println(Utf8Index("12ws北京天安门最美丽", "天安门")) 11} 12 13func Utf8Index(str, substr string) int { 14 asciiPos := strings.Index(str, substr) 15 if asciiPos == -1 || asciiPos == 0 { 16 return asciiPos 17 } 18 pos := 0 19 totalSize := 0 20 reader := strings.NewReader(str) 21 for _, size, err := reader.ReadRune(); err == nil; _, size, err = reader.ReadRune() { 22 totalSize += size 23 pos++ 24 // 匹配到 25 if totalSize == asciiPos { 26 return pos 27 } 28 } 29 return pos 30}
点赞
收藏

评论区

加载中...

相关推荐

Golang中常用的字符串操作

Golang中常用的字符串操作一、标准库相关的Packagegoimport("strings")二、常用字符串操作1.判断是否为空字符串1.1使用“”进行判断思路:直接判断是否等于""空字符串,由于Golang中字符串不能为nil,且为值类型,所以直接与空字符串比较即可。举例:go

盘点Python字符串常见的16种操作方法

大家好,我是Go进阶者,上篇文章给大家介绍了Python字符串,今天给大家分享一些Python字符串的常用操作,一起来看看吧一、常用操作以字符串lstr'welcometoBeijingMuseumitcppsfdsfs'为例,介绍字符常见的操作。<1find检测str是否包含在lstr中,如果是返回开始的索引值,否则返回1。语法:ls

盘点Python字符串常见的16种操作方法

大家好,我是Go进阶者,上篇文章给大家介绍了Python字符串,今天给大家分享一些Python字符串的常用操作,一起来看看吧一、常用操作以字符串'lstr'welcometoBeijingMuseumitcppsfdsfs'为例,介绍字符常见的操作。<1find检测str是否包含在lstr中,如果是返回开始的索引值,否则返回1。语法:l

go语言之进阶篇字符串操作常用函数介绍

下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档。一、字符串操作常用函数介绍1、ContainsfuncContains(s,substrstring)bool功能:字符串s中是否包含substr,返回bool值示例:fmt.Println(strings.Contains(

Go 正则表达式

packagemainimport"bytes"import"fmt"import"regexp"funcmain(){//这个测试一个字符串是否符合一个表达式。match,_:regexp.MatchString("p(az)ch","peach")fmt.Println(match)//上面我们是直接使

ES6 新增了哪些字符串处理方法

ES6新增了哪些字符串处理方法我们都知道在ES6之前,我们只能使用indexOf来判断字符串是否存在某个字符,现在ES6多出了几个比较常用的方法:includes():返回布尔值,判断是否找到参数字符串。startsWith():返回布尔值,判断参数字符串是否在原字符