日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

golang字符串处理

發布時間:2025/6/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 golang字符串处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字符串處理

下面這些函數來自于string包

常用操作

Fields以連續的空白字符為分隔符

// Fields 以連續的空白字符為分隔符,將 s 切分成多個子串,結果中不包含空白字符本身 // 空白字符有:\t, \n, \v, \f, \r, ' ', U+0085 (NEL), U+00A0 (NBSP) // 如果 s 中只包含空白字符,則返回一個空列表 func Fields(s string) []string func main() {s := "Hello, 世界! Hello!"ss := strings.Fields(s)fmt.Printf("%q\n", ss) // ["Hello," "世界!" "Hello!"] }

contains包含子串

func Contains(s, substr string) bool 功能: 字符串s中是否包含substr,返回bool值

例子

func main() {fmt.Println(strings.Contains("abc", "a")) //truefmt.Println(strings.Contains("abc", "")) //truefmt.Println(strings.Contains("", "")) //true }

join按指定方式拼接

func Join(a []string, seq string) string 功能: 字符串鏈接,把slice a通過sep鏈接起來

例子

func main() {s := []string{"foo", "bar", "baz"}//foo, bar, bazfmt.Println(strings.Join(s, ", ")) }

index找位置

還有個LastIndex表示最后出現的位置

func Index(s, sep string) int 功能: 在字符串s中查找sep所在的位置,返回位置值,找不到返回-1

例子

func main() {//3fmt.Println(strings.Index("chiken", "ken")) }

repeat重復多少次

func Repeat(s string, count int) string 功能: 重復s字符串count次,最后返回重復的字符串

例子

func main() {//bananafmt.Println("ba" + strings.Repeat("na", 2)) }

replace按指定替換

fiunc Replace(s, old, new string, n int) string 功能: 在s字符串中,把old字符串替換為new字符串,n表示替換的次數,小于0表示全部替換

例子

func main() {//ab1 efg 1ccfmt.Println(strings.Replace("abc efg ccc", "c", "1", 2)) }

split分割

func Split(s, sep string) []string 功能: 把s字符串按照sep分割,返回slice

例子

func main() {//["a" "b" "c"]fmt.Printf("%q\n", strings.Split("a,b,c", ","))//["" " is c"]fmt.Printf("%q\n", strings.Split("a is c", "a")) }

Trim頭尾去除指定的串

func Trim(s string, cutset string) string 功能: 在s字符串的頭部和尾部去除cutset指定的字符串

例子

func main() {//["aaa"]fmt.Printf("[%q]", strings.Trim(" !!!aaa!!! ", " !")) }

字符串轉換

Append

將整數等轉換為字符串后,添加到現有的字節數組中

func main() {//字節數組str := make([]byte, 0, 100)str = strconv.AppendBool(str, false)//以10進制的方式追加,參數10str = strconv.AppendInt(str, 111, 10)str = strconv.AppendQuote(str, "abcde")str = strconv.AppendQuoteRune(str, '單')//false111"abcde"'單'//轉為string打印fmt.Println(string(str)) }

Format

Format系列函數把其他類型的轉換為字符串

例子

a := strconv.FormatBool(false) //10進制 b := strconv.FormatInt(1234, 10) c := strconv.FormatUint(123444, 10) //整形轉字符串 d := strconv.Itoa(1234)//false 1234 123444 1234 fmt.Println(a, b, c, d)

parse

parse系列函數把字符串轉換為其他類型

//字符串轉其他類型 var flag bool var err error flag, err = strconv.ParseBool("true") if err == nil {//沒有錯誤fmt.Println("flag = ", flag) } else {fmt.Println("err = ", err) }

Atoi

func main() {//_表示丟棄a, _ := strconv.Atoi("567")fmt.Println(a) }

和切片轉換

長度是字節的長度
字符串底層是一個byte數組,所以可以和[]byte類型互相轉換

字符串是不可以修改的

var str = "hello你好" fmt.Printf("str[0]=%c, len(str)=%d\n", str[0], len(str))for index, val := range str {fmt.Println(index, val) } //str['0'] = '1' 錯誤不能修改 var byteSlice []byte byteSlice = []byte(str) byteSlice[0] = '0' str = string(byteSlice)fmt.Println(str)

輸出

str[0]=h, len(str)=11 0 104 1 101 2 108 3 108 4 111 5 20320 8 22909 0ello你好

字節長度和字符長度

rune是字符類型

var str = "hello你好" //字節數組 var rune []byte rune = []byte(str) //11, 11 fmt.Println(len(str), len(rune))var str = "hello你好" //rune是字符類型 var byteSlice []rune byteSlice = []rune(str) //11, 7 fmt.Println(len(str), len(byteSlice))

string和int互相轉換

  • string轉成int:
int, err := strconv.Atoi(string)
  • string轉成int64:
int64, err := strconv.ParseInt(string, 10, 64)
  • int轉成string:
string := strconv.Itoa(int)
  • int64轉成string:
string := strconv.FormatInt(int64,10)
  • string 轉 int32
i32,err := strconv.ParseInt(str,10,32) if err == nil { fmt.Printf("i32: %v\\n", int32(i32)) }
  • int到int64
int64_ := int64(1234)

string和float float32 float64

  • float到string
string := strconv.FormatFloat(float32,'E',-1,32) string := strconv.FormatFloat(float64,'E',-1,64) // 'b' (-ddddp±ddd,二進制指數) // 'e' (-d.dddde±dd,十進制指數) // 'E' (-d.ddddE±dd,十進制指數) // 'f' (-ddd.dddd,沒有指數) // 'g' ('e':大指數,'f':其它情況) // 'G' ('E':大指數,'f':其它情況)
  • string到float64
float,err := strconv.ParseFloat(string,64)
  • string到float32
float,err := strconv.ParseFloat(string,32)

string到time

day,_ := time.Parse("2006-01-02", "2017-11-14") month := time.Unix(day.Unix(), 0).Format("2006-01") //返回2017-11

總結

以上是生活随笔為你收集整理的golang字符串处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。