<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] # 字符串處理 下面這些函數來自于string包 常用操作 ![](https://box.kancloud.cn/a1e1eeebb98b302502bac3e36ff38fea_693x254.png) ## 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")) //true fmt.Println(strings.Contains("abc", "")) //true fmt.Println(strings.Contains("", "")) //true } ~~~ ## join按指定方式拼接 ~~~ func Join(a []string, seq string) string 功能: 字符串鏈接,把slice a通過sep鏈接起來 ~~~ 例子 ~~~ func main() { s := []string{"foo", "bar", "baz"} //foo, bar, baz fmt.Println(strings.Join(s, ", ")) } ~~~ ## index找位置 還有個LastIndex表示最后出現的位置 ~~~ func Index(s, sep string) int 功能: 在字符串s中查找sep所在的位置,返回位置值,找不到返回-1 ~~~ 例子 ~~~ func main() { //3 fmt.Println(strings.Index("chiken", "ken")) } ~~~ ## repeat重復多少次 ~~~ func Repeat(s string, count int) string 功能: 重復s字符串count次,最后返回重復的字符串 ~~~ 例子 ~~~ func main() { //banana fmt.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 1cc fmt.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進制的方式追加,參數10 str = 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 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看