go语言之进阶篇字符串操作常用函数介绍
下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档。
一、字符串操作常用函数介绍
1、Contains
func Contains(s, substr string) bool
功能:字符串s中是否包含substr,返回bool值
示例:
fmt.Println(strings.Contains("seafood", "foo")) fmt.Println(strings.Contains("seafood", "bar")) fmt.Println(strings.Contains("seafood", "")) fmt.Println(strings.Contains("", ""))
执行结果:
true
false
true
true
2、Join
func Join(a []string, sep string) string
功能:字符串链接,把slice a通过sep链接起来
示例:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
执行结果:
foo, bar, baz
3、Index
func Index(s, sep string) int
功能:在字符串s中查找sep所在的位置,返回位置值,找不到返回-1
示例:
fmt.Println(strings.Index("chicken", "ken")) fmt.Println(strings.Index("chicken", "dmr"))
执行结果:
4
-1
4、Repeat
func Repeat(s string, count int) string
功能:重复s字符串count次,最后返回重复的字符串
示例:
fmt.Println("ba" + strings.Repeat("na", 2))
执行结果:
banana
5、Replace
func Replace(s, old, new string, n int) string
功能:在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示全部替换
示例:
fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2)) fmt.Println(strings.Replace("oink oink oink", "oink", "moo", -1))
执行结果:
oinky oinky oink
moo moo moo
6、Split
func Split(s, sep string) []string
功能:把s字符串按照sep分割,返回slice
示例:
fmt.Printf("%q\n", strings.Split("a,b,c", ","))
fmt.Printf("%q\n", strings.Split("a man a plan a canal panama", "a "))
fmt.Printf("%q\n", strings.Split(" xyz ", ""))
fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins"))
#执行结果:
["a" "b" "c"]
["" "man " "plan " "canal panama"]
[" " "x" "y" "z" " "]
[""]
7、Trim
func Trim(s string, cutset string) string
功能:在s字符串的头部和尾部去除cutset指定的字符串
示例:
fmt.Printf("[%q]", strings.Trim(" !!! Achtung !!! ", "! "))
执行结果:
["Achtung"]
8、Fields
示例:
func Fields(s string) []string
功能:去除s字符串的空格符,并且按照空格分割返回slice
执行结果:
Fields are: ["foo" "bar" "baz"]
以上应用综合示例:
package main import (
"fmt"
"strings"
) func main() {
//"hellogo"中是否包含"hello", 包含返回true, 不包含返回false
fmt.Println(strings.Contains("hellogo", "hello"))
fmt.Println(strings.Contains("hellogo", "abc")) //Joins 组合
s := []string{"abc", "hello", "mike", "go"}
buf := strings.Join(s, "x")
fmt.Println("buf = ", buf) //Index, 查找子串的位置
fmt.Println(strings.Index("abcdhello", "hello"))
fmt.Println(strings.Index("abcdhello", "go")) //不包含子串返回-1 //重复多少次,这里重复3次
buf = strings.Repeat("go", 3)
fmt.Println("buf = ", buf) //"gogogo" //Split 以指定的分隔符拆分
buf = "hello@abc@go@mike"
s2 := strings.Split(buf, "@")
fmt.Println("s2 = ", s2) //Trim去掉两头的字符
buf = strings.Trim(" are u ok? ", " ") //去掉2头空格
fmt.Printf("buf = #%s#\n", buf) //去掉空格,把元素放入切片中
s3 := strings.Fields(" are u ok? ")
//fmt.Println("s3 = ", s3)
for i, data := range s3 {
fmt.Println(i, ", ", data)
} }
执行结果:
true
false
buf = abcxhelloxmikexgo
4
-1
buf = gogogo
s2 = [hello abc go mike]
buf = #are u ok?#
0 , are
1 , u
2 , ok?
go语言之进阶篇字符串操作常用函数介绍的更多相关文章
- go语言之进阶篇字符串转换
1.字符串转换 示例: package main import ( "fmt" "strconv" ) func main() { //转换为字符串后追加到字节 ...
- go语言之进阶篇成员操作
1.成员操作 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, ...
- PHP字符串操作常用函数
/* * 确定字符串长度 * int strlen(string str) * 比较两个字符串 * 1.strcmp函数对两个字符串进行二进制安全的比较,并区分大小写 * int strcmp(str ...
- python 字符串操作常用函数总结
说明:并不完善,只是记录自己使用到的,没使用到或会用的不会出现在本文. 1.字符串截取 (1)基于索引 s = 'ilovepython' s[0]='i' s[-1] = 'n' (2)取其中一段 ...
- C语言字符串操作常用库函数
C语言字符串操作常用库函数 *********************************************************************************** 函数 ...
- mysql进阶(二十九)常用函数
mysql进阶(二十九)常用函数 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP ...
- Node.js进阶篇-koa、钩子函数、websocket、嵌入式开发
代码地址如下:http://www.demodashi.com/demo/12932.html 一.简介 koa是由Express原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的We ...
- Python列表、元组、字典和字符串的常用函数
Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...
- php中文件操作常用函数有哪些
php中文件操作常用函数有哪些 一.总结 一句话总结:读写文件函数 判断文件或者目录是否存在函数 创建目录函数 file_exists() mkdir() file_get_content() fil ...
随机推荐
- join方法的使用
在上面的例子中多次使用到了Thread类的join方法.我想大家可能已经猜出来join方法的功能是什么了.对,join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方 ...
- 【翻译】What is State Machine Diagram(什么是状态机图)?
[翻译]What is State Machine Diagram(什么是状态机图)? 写在前面 在上一篇学习类图的时候将这个网站上的类图的一篇文章翻译了出来,感觉受益良多,今天来学习UML状态机图, ...
- Centos 7.4下 部署openstack Queens 计算节点qemu高版本问题
sed -i 's/$contentdir/centos/g' /etc/yum.repos.d/CentOS-QEMU-EV.repo 这样既可正常安装compute服务
- java 使用grpc步骤
1.配置grpc maven依赖 <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-ne ...
- Java可视化编程---SendMail工具的开发
介绍: SendMail是一款简便的163邮箱发件工具 利用了163的SMTP接口来发送邮件 版本号:SendMail v1.0 在编写发送邮件工具之前,还需要安装 JavaMail API 和Jav ...
- 如何利用JS判断当前来路域名并跳转到指定页面
1.如何利用JS判断当前来路域名并跳转到指定页面 获取当前请求路径var href = location.href ;if(href.indexOf("baidu")>-1) ...
- httpwatch抓包工具的使用方法
火狐浏览器下有著名的httpfox,而HttpWatch则是IE下强大的网页数据分析工具.这个工具到底有哪些具体功能呢?这个我就不再赘述了,百度百科上列的很全面,但也比较抽象.我只想说我曾经用这个工具 ...
- 0xWS2812 STM32 driver for WS2812(B) RGB LEDs
0xWS2812 STM32 driver for WS2812(B) RGB LEDs 0xWS2812 pronounced "hex-WS2812" This code ai ...
- 汽车之家店铺数据抓取 DotnetSpider实战
一.背景 春节也不能闲着,一直想学一下爬虫怎么玩,网上搜了一大堆,大多都是Python的,大家也比较活跃,文章也比较多,找了一圈,发现园子里面有个大神开发了一个DotNetSpider的开源库,很值得 ...
- CListCtrlEx:一个支持文件拖放和实时监视的列表控件——用未公开API函数实现Shell实时监视
一.需求无论何时,当你在Explorer窗口中创建.删除或重命名一个文件夹/文件,或者插入拔除移动存储器时,Windows总是能非常快速地更新它所有的视图.有时候我们的程序中也需要这样的功能,以便当用 ...