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