视频学习地址: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中的字符 |