Go-數據類型-字符串-string

字符串 — string

  • 字符串使用雙引號表示 ” “

  • 多行或原始字符串(反斜杠失去轉義行為)使用 反引號 “

  • 字符使用單引號表示 ‘ ‘,表示單獨的字母、中文、數字

  • 字符串轉換 — strings

    • 拼接 + fmt.Sprintf
    • 分割 Split
    • 連接 Join
    • 包含 Contains
    • 前後綴判斷 HasPrefix HasSuffix
    • 子串位置 Index LastIndex
    package main
    
    import (
    	"fmt"	
    	"strings"
    )
    
    
    func main() {
    	name := "beimenchuixue"
    	fmt.Printf("%T", name)
    
    	// 字符拼接
    	age := "18歲"
    	// + 號拼接
    	fmt.Println(name + age)
    	// 格式化拼接
    	newStr := fmt.Sprintf("%s%s", name, age)
    	fmt.Println(newStr)
    
    	// 字符串分割 split,反引號讓轉義符號\失去轉義,成為一個普通字符
    	filePath := `C:\Users\Administrator\Desktop\blog\golang\基礎知識`
    	fmt.Println(strings.Split(filePath, "\\"))
    
    	// 字符串前綴和後綴判斷
    	fileName := "b-hi.jpg"
    	// 前綴判斷
    	fmt.Println(strings.HasPrefix(fileName, "b"))
    	// 後綴判斷
    	fmt.Println(strings.HasSuffix(fileName, ".jpg"))
    
    	// 包含某個字符判斷 contain
    	fmt.Print(strings.Contains(fileName, "hi"))
    }
    
    
  • 字符串是不可變類型,想修改需要講字符串轉換成其他可變類型

轉義字符-反斜杠 \

  • 把前置了反斜杠的字符轉義成特殊字符

    雙引號 \"

    單引號 \'

    回車 \r

    換行 \n

    退格 \b

字符編碼

  • 二進制 – 數字 – 字符
  • Go內存使用Unicode編碼,源文件使用UTF-8編碼
  • 通用編程語言,源碼文件使用UTF-8編碼,讀取到內存中運行使用Unicode編碼

字符默認類型

  • 使用雙引號的默認為string類型,runeint32的別名
  • 使用單引號的默認為int32類型,byteuint8的別名

字符串抽取和切片

  • 抽取 string[index] => []byte(string)[index]

    這對包含中文的字符串出現問題,為了正確識別,可以將字符串轉成 []rune類型或者通過 for range 遍歷

  • 切片 string[start:end]

  • 抽取和切片的索引使用的位元組單位

Tags: