golang 字串常用操作(go練習代碼)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

練習golang string常用操作,備份

類型轉換
比較對比
搜尋 尋找 統計
替換
刪除過濾
大小寫轉換
首碼尾碼
字串分割
拼接
3中拼接字串方式對比
func main() {    fmt.Println("字串測試")    fmt.Println("字串轉化")    //擷取程式啟動並執行作業系統平台下 int 類型所佔的位元,如:strconv.IntSize。    //strconv.IntSize    fmt.Println("將字串轉換為 int 型。")    var trastr01 string = "100"    traint01, err_tra := strconv.Atoi(trastr01)    if err_tra != nil {        fmt.Println(err_tra)    } else {        fmt.Println(traint01)    }    fmt.Println("將字串轉換為 float64 型")    var trastr02 string = "100.55"    trafloat01, err_float := strconv.ParseFloat(trastr02, 10)    if err_float != nil {        fmt.Println(err_float)    } else {        fmt.Println(trafloat01)    }    trastr03 := strconv.Itoa(99)    fmt.Println("int 轉字元安 " + trastr03)    var str01 string = "hello,world"    str02 := "你好,世界"    fmt.Println(str01)    fmt.Println(str02)    //    //字串比較    com01 := strings.Compare(str01, str02)    if com01 == 0 {        fmt.Println("相等")    } else {        fmt.Println("不相等 " + string(com01))    }    fmt.Println(com01)    //尋找 包含    var isCon bool = strings.Contains(str01, "hello")    fmt.Println(isCon) //true    //尋找位置    var theIndex int = strings.Index(str01, ",")    fmt.Println(theIndex)                     //5    fmt.Println(strings.Index(str01, "haha")) //不存在返回-1    lastIndex := strings.LastIndex(str01, "o")    fmt.Println("在字串中最後出現位置的索引 " + strconv.Itoa(lastIndex)) //7    //-1 表示字串 s 不包含字串    //統計給定子串sep的出現次數, sep為空白時, 返回1 + 字串的長度    fmt.Println(strings.Count("cheeseeee", "ee")) // 3    fmt.Println(strings.Count("five", ""))        // 5    // 重複s字串count次, 最後返回新產生的重複的字串    fmt.Println("hello " + strings.Repeat("world ", 10))    fmt.Println("替換")    // 在s字串中, 把old字串替換為new字串,n表示替換的次數,小於0表示全部替換    var str03 string = "/Users//Documents/GOPatch/src/MyGO/config/TestString/"    str04 := strings.Replace(str03, "/", "**", -1)    str05 := strings.Replace(str03, "/", "**", 4)    fmt.Println(str04) //**Users****Documents**GOPatch**src**MyGO**config**TestString**    fmt.Println(str05) //**Users****Documents**GOPatch/src/MyGO/config/TestString/    fmt.Println("刪除字串的開頭和尾部")    fmt.Println("刪除兩頭的/ = " + strings.Trim(str03, "/"))      //Users//Documents/GOPatch/src/MyGO/config/TestString    fmt.Println("刪除左邊的/ =  " + strings.TrimLeft(str03, "/")) //Users//Documents/GOPatch/src/MyGO/config/TestString/    //還有 TrimRight    str06 := strings.TrimSpace(" hello hao hao hao ")    fmt.Println("刪除開頭末尾的空格 =" + str06) //'hello hao hao hao'    fmt.Println("大小寫")    str07 := "hello hao hao hao"    fmt.Println(strings.Title(str07))                  //Hello Hao Hao Hao    fmt.Println(strings.ToLower(" Hello Hao Hao Hao")) // hello hao hao hao    fmt.Println(strings.ToUpper(str07))                //HELLO HAO HAO HAO    //首碼 尾碼    fmt.Println(strings.HasPrefix("Gopher", "Go")) // true    fmt.Println(strings.HasSuffix("Amigo", "go"))  // true    fmt.Println("字串分割")    fieldsStr := "  hello   it's  a  nice day today    "    //根據空白符分割,不限定中間間隔幾個空白符    fieldsSlece := strings.Fields(fieldsStr)    fmt.Println(fieldsSlece) //[hello it's a nice day today]    for i, v := range fieldsSlece {        fmt.Printf("下標 %d 對應值 = %s \n", i, v)    }    for i := 0; i < len(fieldsSlece); i++ {        fmt.Println(fieldsSlece[i])    }    //根據特定字元分割    slice01 := strings.Split("q,w,e,r,t,y,", ",")    fmt.Println(slice01)      //[q w e r t y ]    fmt.Println(cap(slice01)) //7  最後多個空""    for i, v := range slice01 {        fmt.Printf("下標 %d 對應值 = %s \n", i, v)    }    //拼接    //Join 用於將元素類型為 string 的 slice, 使用分割符號來拼接組成一個字串:    var str08 string = strings.Join(fieldsSlece, ",")    fmt.Println("Join拼接結果=" + str08) //hello,it's,a,nice,day,today    fmt.Println("------------對比字串拼接效率----------------")    var buffer bytes.Buffer    start := time.Now()    for i := 0; i < 100000; i++ {        buffer.WriteString("test is here\n")    }    buffer.String() // 拼接結果    end := time.Now()    fmt.Println("Buffer time is ", end.Sub(start).Seconds())    start = time.Now()    str := ""    for i := 0; i < 100000; i++ {        str += "test is here\n"    }    end = time.Now()    fmt.Println("+= time is ", end.Sub(start).Seconds())    start = time.Now()    var sl []string    for i := 0; i < 100000; i++ {        sl = append(sl, "test is here\n")    }    strings.Join(sl, "")    end = time.Now()    fmt.Println("Join time is", end.Sub(start).Seconds())    /*        Buffer time is  0.00388283        += time is  11.730007558        Join time is 0.016644653    */}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.