### 字符串拼接
> **字符串拼接通過 "+" 完成**
```
package main
import "fmt"
func main() {
a := "你好!"
b := "word"
c := a + b
fmt.Println(c)
// 你好!word
}
```
> **當所需要拼接的字符串長度較長,需要使用下面 字節緩沖的方法。**
```
package main
import (
"bytes"
// 引入 bytes包中 WriteString()的方法來寫入
"fmt"
"reflect"
)
func main() {
a := "你好!"
b := "word"
var c bytes.Buffer
// 聲明變量 c ,類型為字節緩沖
c.WriteString(a)
// 寫入字符串變量a的內容
c.WriteString(b)
// 寫入字符串 變量b的內容
fmt.Println(c.String())
// 你好!word
fmt.Println(reflect.TypeOf(c))
// bytes.Buffer
}
```
### 字符串截取
> **使用 strings包的 Index() 方法對字符串搜索并截取,LastIndex()方法反向搜索字符串**
```
package main
import (
"fmt"
"strings"
)
func main() {
str := "holle,word!"
// 正向搜索Index()
index := strings.Index(str, "e")
// 反向搜索LastIndex()
lastindex := strings.LastIndex(str, "r")
fmt.Println(index)
// 4
fmt.Println(lastindex)
// 8
fmt.Println(str[lastindex:])
// rd!
fmt.Println(str[index:])
// e,word!
fmt.Println(str[index:5])
// e
}
```
### 修改字符串
> **將字符轉換成字節數組才能修改**
```
package main
import "fmt"
func main() {
str := "Hello, world!"
bytes := []byte(str)
// 使用 for 循環 把前面兩個[0][1] 替換成 ' ' 轉換字節不能用 " "
for i := 0; i < 2; i++ {
bytes[i] = ' '
}
fmt.Println(string(bytes))
// llo, world!
}
```
### 字符串格式化輸出
> **使用 fmt 包的 Sprintf()方法,調用格式:**
> **Sprintf(format,arg1,arg2,.......)**
> **需要配合格式化動詞,使用 "%"開頭**
```
package main
import "fmt"
func main() {
day := 1
hour := 24
// (格式化字符串,變量1,變量2)
str := fmt.Sprintf("%d天有%d小時", day, hour)
fmt.Println(str)
//1天有24小時
}
```
### GO語言中的字符串的常見操作(strings包)
* * *
**在Go語言的字符串中的常見操作**
* strings.HasPrefix(s string, prefix string) bool:判斷字符串s是否以prefix開頭
* strings.HasSuffix(s string, suffix string) bool:判斷字符串s是否以suffix結尾。
* strings.Index(s string, str string) int:判斷str在s中首次出現的位置,如果沒有出現,則返回-1
* strings.LastIndex(s string, str string) int:判斷str在s中最后出現的位置,如果沒有出現,則返回-1
* strings.Replace(str string, old string, new string, n int):字符串替換
* strings.Count(str string, substr string)int:字符串計數
* strings.Repeat(str string, count int)string:重復count次str
* strings.ToLower(str string)string:轉為小寫
* strings.ToUpper(str string)string:轉為大寫
* strings.TrimSpace(str string):去掉字符串首尾空白字符
* strings.Trim(str string, cut string):去掉字符串首尾cut字符
* strings.TrimLeft(str string, cut string):去掉字符串首cut字符
* strings.TrimRight(str string, cut string):去掉字符串首cut字符
* strings.Field(str string):返回str空格分隔的所有子串的slice
* strings.Split(str string, split string) \[\]string:返回str split分隔的所有子串的slice
* strings.Join(s1 \[\]string, sep string):用sep把s1中的所有元素鏈接起來
* strings.Itoa(i int):把一個整數i轉成字符串
* strings.Atoi(str string)(int, error):把一個字符串轉成整數
- 安裝開發環境
- 安裝開發環境
- 安裝詳細教程
- 引入包
- Go語言基礎
- 基本變量與數據類型
- 變量
- 數據類型
- 指針
- 字符串
- 代碼總結
- 常量與運算符
- 常量
- 運算符
- 流程控制
- if判斷
- for循環
- switch分支
- goto跳轉
- 斐波那契數列
- Go語言內置容器
- 數組
- 切片
- 映射
- 函數
- 函數(上)
- 函數(中)
- 函數(下)
- 小節
- 包管理
- 結構體
- 結構體(上)
- 結構體(中)
- 結構體(下)
- 小節
- 錯誤處理
- 錯誤處理
- 宕機
- 錯誤應用
- 小節
- 文件操作
- 獲取目錄
- 創建和刪除目錄
- 文件基本操作(上)
- 文件基本操作(中)
- 文件基本操作(下)
- 處理JSON文件
- 接口與類型
- 接口的創建與實現
- 接口賦值
- 接口嵌入
- 空接口
- 類型斷言(1)
- 類型斷言(2)
- 小節
- 并發與通道
- goroutine協程
- runtime包
- 通道channel
- 單向通道channel
- select
- 線程同步
- 多線程的深入學習
- http編程
- http簡介
- Client和Request
- get請求
- post請求
- 模塊函數方法
- 模塊
- fmt庫,模塊
- 項目練習
- 爬蟲:高三網
- 爬蟲:快代理
- 爬蟲:快代理2
- 多線程:通道思路
- 多線程爬蟲:快代理