字符串的常用操作

视频学习地址:Go零基础入门_在线视频教程-CSDN程序员研修院

一. 转义符

1、常见转义符

|------|----------------------|
| \t | 制表符(Tab) |
| \n | 换行符(New Line) |
| \\ | 反斜杠符号(\) |
| \" | 双引号(") |
| \r | 回车符(Carriage Return) |

var s1 = "hello xt\nhello,lxc"
fmt.Println(s1)
var s2 = "my name is \"xt\""
fmt.Println(s2)
var s3 = "D:\\installation\\Go"
fmt.Println(s3)
2、其他转义符

|-----|---------------------|
| \a | 响铃符(Bell) |
| \b | 退格符(Backspace) |
| \f | 换页符(Form Feed) |
| \v | 垂直制表符(Vertical Tab) |
| \' | 单引号(') |
| \? | 代表一个问号 |

var s4 = "l\vxc"
fmt.Println(s4)
3、多行字符串

语法: ``

var s5 = `一
二
三
`
fmt.Println(s5)

二. 格式化输入输出

|-----|-------------------|
| %d | 十进制整数 |
| %b | 二进制整数 |
| %o | 八进制整数 |
| %x | 十六进制整数(小写字母) |
| %X | 十六进制整数(大写字母) |
| %f | 浮点数 |
| %e | 科学计数法表示的浮点数 |
| %E | 科学计数法表示的浮点数(大写字母) |
| %s | 字符串 |
| %c | 字符 |
| %t | 布尔值(true/false) |
| %p | 指针的十六进制表示 |
| %v | 使用默认格式输出变量 |
| %+v | 输出结构体字段的名称和值 |
| %#v | 输出Go语言的语法表示 |
| %T | 输出变量的类型 |

age := 18
fmt.Printf("你的年龄是:%d", age)

age1 := 18
fmt.Printf("你的年龄的二进制数:%b", age1)

age2 := 18
fmt.Printf("类型是:%T", age2)

三. 字符串拼接

1.使用 + 号拼接
str1 := "hello"
str2 := "lxc"
fmt.Println(str1 + " " + str2)
2.使用fmt.Sprintf
str1 := "hello"
str2 := "lxc"
str3 := fmt.Sprintf("%s %s", str1, str2)
fmt.Println(str3)
3.Join
str1 := "hello"
str2 := "lxc"

sli := []string{str1, str2}
str4 := strings.Join(sli, " ")
fmt.Println(str4)
4.bytes.Buffer
str1 := "hello"
str2 := "lxc"
var bt bytes.Buffer
bt.WriteString(str1)
bt.WriteString(" ")
bt.WriteString(str2)
str5 := bt.String()
fmt.Println(str5)
5.strings.Builder 官方推荐 效率最高
str1 := "hello"
str2 := "lxc"
var build strings.Builder
build.WriteString(str1)
build.WriteString(" ")
build.WriteString(str2)
str6 := build.String()
fmt.Println(str6)

四. 字符串的常用方法

|-----------------------------------|----------------------------------------|
| len(s) | 返回字符串s的长度(字节数) |
| + | 连接两个字符串 |
| strings.Contains(s, substr) | 判断字符串s是否包含子串substr,返回布尔值 |
| strings.Count(s, substr) | 返回字符串s中子串substr出现的次数 |
| strings.EqualFold(s1, s2) | 不区分大小写地比较两个字符串s1和s2是否相等,返回布尔值 |
| strings.Index(s, substr) | 返回子串substr在字符串s中第一次出现的索引位置,如果未找到则返回-1 |
| strings.LastIndex(s, substr) | 返回子串substr在字符串s中最后一次出现的索引位置,如果未找到则返回-1 |
| strings.Replace(s, old, new, n) | 在字符串s中将old替换为new,替换次数为n,如果n为-1则替换所有 |
| strings.Split(s, sep) | 根据分隔符sep将字符串s拆分为一个字符串数组 |
| strings.TrimSpace(s) | 去除字符串s两端的空白字符(包括空格、制表符、换行符等) |
| strings.ToUpper(s) | 将字符串s转换为大写形式 |
| strings.ToLower(s) | 将字符串s转换为小写形式 |
| strings.Join(slice, sep) | 将一个字符串切片slice通过分隔符sep连接成一个字符串 |
| strings.HasPrefix(s, prefix) | 判断字符串s是否以子串prefix开头,返回布尔值 |
| strings.HasSuffix(s, suffix) | 判断字符串s是否以子串suffix结尾,返回布尔值 |
| strings.Repeat(s, count) | 将字符串s重复count次,返回一个新的字符串 |
| strings.ToLowerSpecial(s, locale) | 将字符串s转换为小写形式,并根据指定的地区locale进行特殊处理 |
| strings.ToUpperSpecial(s, locale) | 将字符串s转换为大写形式,并根据指定的地区locale进行特殊处理 |
| strings.Fields(s) | 根据空白字符(空格、制表符、换行符等)将字符串s拆分为一个字符串数组 |
| strings.FieldsFunc(s, f) | 根据自定义函数f将字符串s拆分为一个字符串数组 |
| strings.Trim(s, cutset) | 去除字符串s两端包含在cutset中的字符 |
| strings.TrimLeft(s, cutset) | 去除字符串s左侧包含在cutset中的字符 |
| strings.TrimRight(s, cutset) | 去除字符串s右侧包含在cutset中的字符 |

相关推荐
桃园码工20 小时前
1-Gin介绍与环境搭建 --[Gin 框架入门精讲与实战案例]
go·gin·环境搭建
云中谷20 小时前
Golang 神器!go-decorator 一行注释搞定装饰器,v0.22版本发布
go·敏捷开发
苏三有春1 天前
五分钟学会如何在GitHub上自动化部署个人博客(hugo框架 + stack主题)
git·go·github
我是前端小学生2 天前
Go语言中的方法和函数
go
探索云原生2 天前
在 K8S 中创建 Pod 是如何使用到 GPU 的: nvidia device plugin 源码分析
ai·云原生·kubernetes·go·gpu
自在的LEE2 天前
当 Go 遇上 Windows:15.625ms 的时间更新困局
后端·kubernetes·go
Gvto3 天前
使用FakeSMTP创建本地SMTP服务器接收邮件具体实现。
go·smtp·mailtrap
白泽来了4 天前
【Go进阶】手写 Go websocket 库(一)|WebSocket 通信协议
开源·go
witton4 天前
将VSCode配置成Goland的视觉效果
ide·vscode·编辑器·go·字体·c/c++·goland
非凡的世界4 天前
5个用于构建Web应用程序的Go Web框架
golang·go·框架·web