package main import ( "fmt" "strings" ) func main() { s1 := "你好china" s2 := ""D:\Go\src\p1"" // 双斜杠有一个是转义 // 1. 字符串长度 fmt.Println(len(s1)) // 11 一个汉字 3 字节,一个小写字母 1 个字节 // 2. 转义 fmt.Println(s2) // "D:Gosrcp1" // 3. 多行字符串 s3 := ` 静夜思 窗前明月光,疑是地上霜。 举头望明月,低头思故乡。 ` fmt.Println(s3) // 4. 字符串相关操作 s4 := "hello" s5 := "word" s6 := "D:\Go\src\p1" // 拼接 fmt.Println(s4 + s5) // helloword // 分割 返回列表 fmt.Println(strings.Split(s6, "\")) // [D: Go src p1] // 包含 布尔值 fmt.Println(strings.Contains(s4, "ll")) // true // 前缀 布尔值 fmt.Println(strings.HasPrefix(s5, "wo")) // true // 后缀 布尔值 fmt.Println(strings.HasSuffix(s6, "p2")) // false // 字串位置 fmt.Println(strings.Index(s4, "l")) // 2 fmt.Println(strings.LastIndex(s4, "l")) // 3 fmt.Println(strings.Index(s4, "a")) // -1 // 连接 fmt.Println(strings.Join(strings.Split(s6, "\"), "+")) // D:+Go+src+p1 // 字符串修改 字符串不能修改 s7 := []rune(s4) // rune 切片 s7[0] = 'H' // 单引号 fmt.Println(string(s7)) // Hello }