Go语言中字符串的查找方法小结

1.func Contains(s, substr string) bool这个函数是查找某个字符是否在这个字符串中存在,存在返回true
import (
 "fmt"
 "strings"
)
func main() {
 fmt.Println(strings.Contains("widuu", "wi")) //true
 fmt.Println(strings.Contains("wi", "widuu")) //false
}
2.func ContainsAny(s, chars string) bool这个是查询字符串中是否包含多个字符
import (
 "fmt"
 "strings"
)
func main() {
 fmt.Println(strings.ContainsAny("widuu", "w&d")) //true
}
3.func ContainsRune(s string, r rune) bool,这里边当然是字符串中是否包含rune类型,其中rune类型是utf8.RUneCountString可以完整表示全部Unicode字符的类型
import (
 "fmt"
 "strings"
)
func main() {
 fmt.Println(strings.ContainsRune("widuu", rune('w'))) //true
 fmt.Println(strings.ContainsRune("widuu", 20))        //fasle
}
4.func Count(s, sep string) int这个的作用就是输出,在一段字符串中有多少匹配到的字符
import (
 "fmt"
 "strings"
)
func main() {
 fmt.Println(strings.Count("widuu", "uu")) //1
 fmt.Println(strings.Count("widuu", "u"))  //2
}
5.func Index(s, sep string) int 这个函数是查找字符串,然后返回当前的位置,输入的都是string类型,然后int的位置信息
复制代码代码如下:
import (
 "fmt"
 "strings"
)
func main() {
 fmt.Println(strings.Index("widuu", "i")) //1
 fmt.Println(strings.Index("widuu", "u")) //3
}

6.func IndexAny(s, chars string) int 这个函数是一样的查找,字符串第一次出现的位置,如果不存在就返回-1
复制代码代码如下:

import (
 "fmt"
 "strings"
)
func main() {
 fmt.Println(strings.IndexAny("widuu", "u")) //3
}

7.func IndexByte(s string, c byte) int,这个函数功能还是查找第一次粗线的位置,只不过这次C是byte类型的,查找到返回位置,找不到返回-1
复制代码代码如下:

import (
 "fmt"
 "strings"
)
func main() {
 fmt.Println(strings.IndexByte("hello xiaowei", 'x')) //6
}

8.func IndexRune(s string, r rune) int,还是查找位置,只不过这次是rune类型的

复制代码代码如下:
import (
 "fmt"
 "strings"
)
func main() {
 fmt.Println(strings.IndexRune("widuu", rune('w'))) //0
}

9.func IndexFunc(s string, f func(rune) bool) int这个函数大家一看就知道了,是通过类型的转换来用函数查找位置,我们来代码看下哈
复制代码代码如下:

import (
 "fmt"
 "strings"
)
func main() {
 fmt.Println(strings.IndexFunc("nihaoma", split)) //3
}
func split(r rune) bool {
 if r == 'a' {
  return true
 }
 return false
}

10.func LastIndex(s, sep string) int 看到这个大家可能也明白了查找的是最后出现的位置,正好跟index相反
复制代码代码如下:

import (
 "fmt"
 "strings"
)
func main() {
 fmt.Println(strings.LastIndex("widuu", "u")) // 4
}

11.func LastIndexAny(s, chars string) int这个跟indexAny正好相反,也是查找最后一个

复制代码代码如下:
import (
 "fmt"
 "strings"
)
func main() {
 fmt.Println(strings.LastIndexAny("widuu", "u")) // 4
}

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2016-02-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Pythonista

Golang之strings包

比较全的是golang中文网的:https://studygolang.com/articles/5769

21720
来自专栏柠檬先生

jquery 筛选元素 (2)

.add()   创建一个新的对象,元素添加到匹配的元素集合中。   .add(selector)     selector 一个字符串表示的选择器...

21380
来自专栏老马寒门IT

06-老马jQuery教程-jQuery高级

1.jQuery原型对象解密 jQuery里面的大部分API都是在jQuery的原型对象上定义的。jQuery源码中对原型对象做了简写的处理。也就是说:jQue...

23290
来自专栏领域驱动设计DDD实战进阶

06-TypeScript中的表达式

TypeScript中提供了箭头表达式,通过箭头表达式可以简化我们的编码。 1.箭头表达式简化匿名函数 在JS中,我们通常使用匿名函数,匿名函数实际上是赋值给一...

30170
来自专栏腾讯IVWEB团队的专栏

玩转 JavaScript 正则表达式

正则表达式也能帮助我们方便的进行Find&Replace;的工作,由于正则表达式的流派很多,而作者比较熟悉JS,这篇文章主要是描述JavaScript中的正则表...

2.8K00
来自专栏Petrichor的专栏

python: str.format (字符串 格式化)

16020
来自专栏问天丶天问

Linux 字符串截取

20450
来自专栏浪淘沙

桶排序的算法

思路:设数组的长度为len,创建三个长度为len+1的(桶)数组。将数组的元素根据大小放在不同的桶中,其中,必定有差值大于一个桶的差存在,故同一个桶中不可能出现...

9220
来自专栏Golang语言社区

Go 语言范围(Range)

Go 语言中 range 关键字用于for循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元...

33250
来自专栏Golang语言社区

Go 语言变量作用域

作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。 Go 语言中变量可以在三个地方声明: 函数内定义的变量称为局部变量 函数外定义的变...

379140

扫码关注云+社区

领取腾讯云代金券