• 技术文章 >后端开发 >Golang

    go语言字符串怎么求指定子串

    青灯夜游青灯夜游2021-06-18 11:58:34原创303

    在go语言中可以利用切片配合“strings.Index()”函数来求指定子串,该函数可以在字符串中搜索另外一个子串,获取子串开始和结束位置;语法格式“字符串[开始位置+结束位置:]”。

    本教程操作环境:windows10系统、GO 1.11.2、Dell G3电脑。

    获取字符串的某一段字符是开发中常见的操作,我们一般将字符串中的某一段字符称做子串(substring)。

    下面例子中使用 strings.Index() 函数在字符串中搜索另外一个子串,代码如下:

    tracer := "死神来了, 死神bye bye"
    comma := strings.Index(tracer, ", ")
    pos := strings.Index(tracer[comma:], "死神")
    fmt.Println(comma, pos, tracer[comma+pos:])

    程序输出如下:

    12 3 死神bye bye

    代码说明如下:

    1) 第 2 行尝试在 tracer 的字符串中搜索中文的逗号,返回的位置存在 comma 变量中,类型是 int,表示从 tracer 字符串开始的 ASCII 码位置。

    strings.Index() 函数并没有像其他语言一样,提供一个从某偏移开始搜索的功能。不过我们可以对字符串进行切片操作来实现这个逻辑。

    2) 第4行中,tracer[comma:] 从 tracer 的 comma 位置开始到 tracer 字符串的结尾构造一个子字符串,返回给 string.Index() 进行再索引。得到的 pos 是相对于 tracer[comma:] 的结果。

    comma 逗号的位置是 12,而 pos 是相对位置,值为 3。我们为了获得第二个“死神”的位置,也就是逗号后面的字符串,就必须让 comma 加上 pos 的相对偏移,计算出 15 的偏移,然后再通过切片 tracer[comma+pos:] 计算出最终的子串,获得最终的结果:“死神bye bye”。

    推荐学习:Golang教程

    以上就是go语言字符串怎么求指定子串的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:go语言 字符串
    上一篇:golang怎么通过cgo调用C++程序 下一篇:什么是Golang中的interface
    大前端线上培训班

    相关文章推荐

    • go语言是什么开源协议• go语言有什么数据类型• go语言如何从切片中删除元素• go语言如何初始化结构体的成员变量• go语言空结构体的用法是什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网