下面这些函数来自于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语言之进阶篇字符串操作常用函数介绍的更多相关文章

  1. go语言之进阶篇字符串转换

    1.字符串转换 示例: package main import ( "fmt" "strconv" ) func main() { //转换为字符串后追加到字节 ...

  2. go语言之进阶篇成员操作

    1.成员操作 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, ...

  3. PHP字符串操作常用函数

    /* * 确定字符串长度 * int strlen(string str) * 比较两个字符串 * 1.strcmp函数对两个字符串进行二进制安全的比较,并区分大小写 * int strcmp(str ...

  4. python 字符串操作常用函数总结

    说明:并不完善,只是记录自己使用到的,没使用到或会用的不会出现在本文. 1.字符串截取 (1)基于索引 s = 'ilovepython' s[0]='i' s[-1] = 'n' (2)取其中一段 ...

  5. C语言字符串操作常用库函数

    C语言字符串操作常用库函数 *********************************************************************************** 函数 ...

  6. mysql进阶(二十九)常用函数

    mysql进阶(二十九)常用函数 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP ...

  7. Node.js进阶篇-koa、钩子函数、websocket、嵌入式开发

    代码地址如下:http://www.demodashi.com/demo/12932.html 一.简介     koa是由Express原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的We ...

  8. Python列表、元组、字典和字符串的常用函数

    Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...

  9. php中文件操作常用函数有哪些

    php中文件操作常用函数有哪些 一.总结 一句话总结:读写文件函数 判断文件或者目录是否存在函数 创建目录函数 file_exists() mkdir() file_get_content() fil ...

随机推荐

  1. BZOJ.1076.[SCOI2008]奖励关(概率DP 倒推)

    题目链接 BZOJ 洛谷 真的题意不明啊.. \(Description\) 你有k次选择的机会,每次将从n种物品中随机一件给你,你可以选择选或不选.选择它会获得这种物品的价值:选择一件物品前需要先选 ...

  2. hdu 1507 记录路径的二分匹配 **

    题意:N*M的矩形,向其中填充1*2的小块矩形,黑色的部分不能填充,问最多可以填充多少块.链接:点我 黑白棋最大匹配 将棋盘中i+j为奇数的做A集合,偶数的做B集合,相邻的则建立联系.于是便转换成寻找 ...

  3. STL中优先队列的使用

    普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除.在优先队列中,元素被赋予优先级.当访问元素时,具有最高优先级的元素最先删除.优先队列具有最高级先出的行为特征.我们来说一下C++的 ...

  4. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem H. Parallel Worlds 计算几何

    Problem H. Parallel Worlds 题目连接: http://opentrains.snarknews.info/~ejudge/team.cgi?SID=c75360ed7f2c7 ...

  5. URAL 1966 Cycling Roads 计算几何

    Cycling Roads 题目连接: http://acm.hust.edu.cn/vjudge/contest/123332#problem/F Description When Vova was ...

  6. 新手学cocos2dx,centos7下的安装过程

    背景 打算学写游戏,新手向,当然从cocos2d-x开始. 看了cocos的文档,安装是针对ubuntu的,这里记录下centos7上安装.编译.运行测试的过程. 如果你已经有ubuntu,不推荐看此 ...

  7. ARM Memory Copy

    MODULE ARM_MEMORY PUBLIC ARM_MEMCPY PUBLIC ARM_MEMSET PUBLIC ARM_MEMSET8 PUBLIC ARM_MEMSET16 PUBLIC ...

  8. android adb命令 unable to connect to 192.168.1.155:5555

    如果使用有线网络无法用adb connect命令连接设备的话,可以选择使用无线wifi来连接. 首先在android设备上装一个叫做Adb Wireless的软件,打开wifi,然后打开adb wir ...

  9. 在ASP.NET MVC中实现本地化和全球化

    在开发多语言网站时,我们可以为某种语言创建一个资源文件,根据浏览器所设置的不同语言偏好,让运行时选择具体使用哪个资源文件.资源文件在生成程序集的时候被嵌入到程序集. 本篇体验,在ASP.NET MVC ...

  10. .NET:System.Security.Cryptography.CryptographicException 的解决办法

    详细内容参考此网址:http://social.msdn.microsoft.com/Forums/en-US/ec93922a-fd1e-4225-b5cf-1472ebb3acd1/systems ...