【Golang系列】-字符串
2022-03-05
字符串
一个任意字节的常量序列
字符串字面量
使用“”或者‘来创建
- 双引号:可解析的字符串、支持转义、但不能用来引用多行
- 反引号:创建原生的字符串字面量,可能由多行组成,但不支持转义,并且可以包含除了反引号外其他所有字符
package main
import "fmt"
func main(){
var str string = "hello world"
fmt.Println(str)
}
字符串连接:
字符串支持+级联操作+= 追加操作
package main
import "fmt"
func main(){
name := "tom"
age := 20
msg := name + " " + age
fmt.Println(msg)
msg = " "
msg += name
msg += " "
msg += age
fmt.Println(msg)
}
字符串是不可变的,每次运算都会产生一个新的字符串,所以会产生很多临时的无用的字符串,不仅没有用,还会给gc带来额外假的负担,所以性能比较差
字符串转义字符
包括:回车、换行、单双引号、制表符
转义符含义\r回车符\n换行符\t制表符`单引号``双引号\反斜杠
字符串切片操作
package main
import "fmt"
func main(){
str := "hello world"
n := 3
m := 5
fmt.Println(str[n]) //获取字符串索引位置为n的原始字节
fmt.Println(str[n:m]) //截取字符串索引位置n到m-1的字符串
fmt.Println(str[n:]) //截取字符串索引位置n到len(s)-1的字符串
fmt.Println(str[:m]) //0到m-1的字符串
}
运算结果
108
lo
lo world
hello
字符串常用方法:
方法介绍len(str)+/fmt.Sprintfstrings.containsstrings.hasprefix,strings.hassuffixstrings.index(),strings.lastindex()
字符串格式化
占位符
普通占位符
布尔占位符
整数占位符
浮点数和复数的组成部分
字符串与字节切片
指针