ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 字符串string string里存储的是字符按照utf8编码后的 `8-bit bytes` 二进制数据,通常但不一定表示UTF-8编码的文本。 >[warning] 注意: > 1. 字符串可以为"",但不能为nil > 2. 字符串类型的值是不可变的 > 3. 字符串的值 必须使用 **双引号** 包裹。 1. 定义赋值 ```go name := "xiaoming" fmt.Printf("My name is %s\n", name) // name[0] = "x" //非法操作 name = "jiaxzeng" //重新赋值合法 ``` 2. 查看字符串长度 `len()` 函数返回的字符串长度。 ```go name := "jiaxzeng,您好" fmt.Println(len(name)) ``` 3. 字符串转义符 | 转义符 | 含义 | | :-: |:-: | | \n | 换行符 | | \r | 回车符(返回行首)| | \t | 制表符(tab键) | | \' | 单引号 | | \" | 双引号 | | \\ | 反斜线 | 打印 Windows 平台下的路径 ```go // 实现方法一 // codePath := "D:\\code\\Golang" // fmt.Println(codePath) // 实现方法二 codePath := `D:\code\Golang` fmt.Println(codePath) ``` 4. 多行字符串 反引号间换行将被作为字符串中的换行,但是所有的转义字符均无效,文本将会原样输出. ```go gushi := ` 床前明月光, 疑是地上霜。 举头望明月, 低头思故乡。 ` fmt.Println(gushi) ``` # string常用操作 | 方法 | 说明 | | :-: |:-: | | len(str) | 返回字符串的长度 | | + 或 fmt.Sprint | 拼接字符串(适用于字符串) | | strings.Split | 分割 | | strings.contains | 判断字符串是否包含字符 | | strings.HasPrefix,strings.HasSuffix | 匹配开头、结尾 | | strings.Index(),strings.LastIndex() | 匹配字符出现的序号 | | strings.Join(a[]string, sep string) | 拼接字符串(适用于切片) | ```go // len name := "jiaxzeng" fmt.Println(len(name)) // 8 // + 或 fmt.Sprint 适用于字符串 name := "jiaxzeng" s1 := "您好" // s := name + s1 s := fmt.Sprint(name, s1) fmt.Println(s) // jiaxzeng您好 // strings.Split codePath := "D:\\code\\Golang" codePathSli := strings.Split(codePath, "\\") fmt.Println(codePathSli) //[D: code Golang] // strings.Contains name := "jiaxzeng" fmt.Println(strings.Contains(name, "x")) // true fmt.Println(strings.Contains(name, "o")) // false // strings.HasPrefix,strings.HasSuffix name := "jiaxzeng" fmt.Println(strings.HasPrefix(name, "jia")) //true fmt.Println(strings.HasSuffix(name, "eng")) //true // strings.Index(),strings.LastIndex() s := "fsjlfscescw jlfw fjwla fdj" fmt.Println(strings.Index(s, "j")) // 2 fmt.Println(strings.LastIndex(s, "j")) // 25 // strings.Join(a[]string, sep string) 适用于切片 codePath := "D:\\code\\Golang" codePathSli := strings.Split(codePath, "\\") Path := strings.Join(codePathSli, "\\") fmt.Println(Path) // D:\code\Golang ``` # 字符 组成每个字符串的元素叫做“字符”,可以通过遍历或者单个获取字符串元素获得字符。 字符用单引号 `'` 包裹起来 1. 定义 ```go var by1 = '广' var by2 = 'G' ``` 2. 打印字符 ```go var by1 = '广' var by2 = 'G' fmt.Println(by1) // 24191 fmt.Printf("%c %T\n", by2, by2) // G int32 ``` # Printf占位符 总结这里出现的占位符 | 占位符 | 描述 | | :-: | :-: | | %c | 打印字符 |