最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語(yǔ)言中strings和strconv包示例代碼詳解

 更新時(shí)間:2018年11月26日 14:24:12   作者:itbsl  
這篇文章主要介紹了Go語(yǔ)言中strings和strconv包示例代碼詳解 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前綴和后綴

HasPrefix判斷字符串s是否以prefix開頭:

strings.HaxPrefix(s string, prefix string) bool

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  pre := "Thi"
  str1 := "This is a Go program!"
  fmt.Println(strings.HasPrefix(str1, pre))
}

HasSuffix 判斷字符串 s 是否以 suffix 結(jié)尾:

strings.HasSuffix(s string, suffix string) bool

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  suffix := "am!"
  str1 := "This is a Go program!"
  fmt.Println(strings.HasSuffix(str1, suffix))
}

字符串包含關(guān)系

Contains 判斷字符串 s 是否包含 substr :

strings.Contains(s string, substr string) bool

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
substr := "is"
  str1 := "This is a Go program!"
  fmt.Println(strings.Contains(str1, substr))
}

判斷子字符串或字符在父字符串中出現(xiàn)的位置(索引)

Index 返回字符串 substr 在字符串 s 中的索引( substr 的第一個(gè)字符的索引),-1 表示字符串 s 不包含字符串 substr :

strings.Index(s string, sbustr string) int

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  substr := "is"
  substr2 := "Hi"
  str1 := "This is a Go program!"
  fmt.Println(strings.Index(str1, substr)) //輸出2
  fmt.Println(strings.Index(str1, substr2))//輸出-1
}

LastIndex 返回字符串 substr 在字符串 s 中最后出現(xiàn)位置的索引( substr 的第一個(gè)字符的索引),-1 表示

 字符串 s 不包含字符串 substr :

strings.LastIndex(s string, substr string) int

語(yǔ)法:

package main
import (
  "fmt"
  "strings"
)
func main() {
  substr := "is"
  substr2 := "Hi"
  str1 := "This is a Go program!"
  fmt.Println(strings.LastIndex(str1, substr)) //輸出5
  fmt.Println(strings.LastIndex(str1, substr2))//輸出-1
}

如果 r 是非 ASCII 編碼的字符,建議使用以下函數(shù)來對(duì)字符進(jìn)行定位:

strings.IndexRune(s string, r rune) int

示例

package main
import (
  "fmt"
  "strings"
)
func main() {
  substr := '中'
  substr2 := '天'
  str1 := "我愛你中國(guó)"
  fmt.Println(strings.IndexRune(str1, substr)) //輸出9
  fmt.Println(strings.IndexRune(str1, substr2))//輸出-1
}
package main
import (
  "fmt"
  "strings"
)
func main() {
  substr := "中"
  substr2 := "天"
  str1 := "我愛你𤋮中國(guó)"
  //常見的漢字在utf8中占3個(gè)字節(jié),某些特殊的漢字(如𤋮)在utf8中占四個(gè)字節(jié),所以輸出結(jié)果是13而不是12
  fmt.Println(strings.Index(str1, substr)) //輸出13
  fmt.Println(strings.Index(str1, substr2))//輸出-1
}

字符串替換

Replace 用于將字符串s 中的前 n 個(gè)字符串 old 替換為字符串 new ,并返回一個(gè)新的字符串,如果 n = -1 則替換所有字符串 old 為字符串 new :

strings.Replace(s string, old string, new string, n int) string

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  str1 := "我愛你熙中國(guó)熙"
  fmt.Println(strings.Replace(str1, "熙", "", 1)) //我愛你中國(guó)熙
  fmt.Println(strings.Replace(str1, "熙", "", -1)) //我愛你中國(guó)
}

統(tǒng)計(jì)字符串出現(xiàn)次數(shù)

Count 用于計(jì)算字符串 substr 在字符串 s 中出現(xiàn)的非重疊次數(shù):

strings.Count(s string, substr string) int

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  substr := "is"
  s := "This is a go program!"
  fmt.Println(strings.Count(s, substr)) //2
}

重復(fù)字符串

Repeat 用于重復(fù) count 次字符串 s 并返回一個(gè)新的字符串:

strings.Repeat(s string, count int) string

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  s := "This is a go program!"
  fmt.Println(strings.Repeat(s, 2)) //This is a go program!This is a go program!
}

修改字符串大小寫

ToLower 將字符串中的 Unicode 字符全部轉(zhuǎn)換為相應(yīng)的小寫字符:

strings.ToLower(s string) string

ToUpper 將字符串中的 Unicode 字符全部轉(zhuǎn)換為相應(yīng)的大寫字符:

strings.ToUpper(s string) string

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  s := "This is a Go program!"
  fmt.Println(strings.ToLower(s)) //this is a go program!
  fmt.Println(strings.ToUpper(s)) //THIS IS A GO PROGRAM!
}

修剪字符串

你可以使用 strings.TrimSpace(s) 來剔除字符串開頭和結(jié)尾的空白符號(hào);如果你想要剔除指定字符,則可以使用 strings.Trim(s,cutset) 來將開頭和結(jié)尾的 cutset 去除掉。該函數(shù)的第二個(gè)參數(shù)可以包含任何字符,如果你只想剔除開頭或者結(jié)尾的字符串,則可以使用 TrimLeft 或者 TrimRight 來實(shí)現(xiàn)。

去除字符串s左右兩側(cè)的空格:

strings.TrimSpace(s string) string

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  s := " ThisThis is a Go program!This "
  fmt.Println(s) //原生打印
  fmt.Println(strings.TrimSpace(s)) //剔除空格后的字符串
}

去除開頭或結(jié)尾的字符串:

strings.Trim(s string cutset string) string
strings.TrimLeft(s string, cutset string) string
strings.TrumRight(s string, cutset string) string

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  s := "ThisThis is a Go program!This"
  fmt.Println(strings.Trim(s, "This")) // is a Go program!
  fmt.Println(strings.TrimLeft(s, "This"))//is a Go program!This
  fmt.Println(strings.TrimRight(s, "This"))//ThisThis is a Go program!
}

分割字符串

strings.Fields(s) 將會(huì)利用1個(gè)或多個(gè)空白符號(hào)來作為動(dòng)態(tài)長(zhǎng)度的分隔符將字符串分割成若干小塊,并返

 回一個(gè) slice,如果字符串只包含空白符號(hào),則返回一個(gè)長(zhǎng)度為 0 的 slice。

strings.Fields(s string) []string

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  s := "This is a Go program!"
  fmt.Printf("%v\n", strings.Fields(s)) //[This is a Go program!]
}

strings.Split(s,sep)用于自定義分割符號(hào)來對(duì)指定字符串進(jìn)行分割,同樣返回slice。

因?yàn)檫@ 2 個(gè)函數(shù)都會(huì)返回 slice,所以習(xí)慣使用 for-range 循環(huán)來對(duì)其進(jìn)行處理

strings.Split(s string, sep string) []string

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  s := "This is a Go program!"
  result := strings.Split(s, "Go")
  fmt.Printf("%v\n", result) //[This is a  program!]
  for _, value := range result {
    fmt.Printf("%s\n", value)
  }
}

拼接slice到字符串

Join 用于將元素類型為 string 的 slice 使用分割符號(hào)來拼接組成一個(gè)字符串:

strings.Join(a []string, sep string) string

示例:

package main
import (
  "fmt"
  "strings"
)
func main() {
  var s []string = []string{"I", "love", "you"}
  fmt.Println(strings.Join(s, " ")) //I love you
}

從字符串中讀取內(nèi)容

函數(shù) strings.NewReader(str) 用于生成一個(gè) Reader 并讀取字符串中的內(nèi)容,然后返回指向該Reader 的指針,從其它類型讀取內(nèi)容的函數(shù)還有:

•Read() 從 []byte 中讀取內(nèi)容。
•ReadByte() 和 ReadRune() 從字符串中讀取下一個(gè) byte 或者 rune。

字符串與其它類型的轉(zhuǎn)換

與字符串相關(guān)的類型轉(zhuǎn)換都是通過 strconv 包實(shí)現(xiàn)的。

該包包含了一些變量用于獲取程序運(yùn)行的操作系統(tǒng)平臺(tái)下 int 類型所占的位數(shù),如: strconv.IntSize 。

任何類型 T 轉(zhuǎn)換為字符串總是成功的。

針對(duì)從數(shù)字類型轉(zhuǎn)換到字符串,Go 提供了以下函數(shù):

•strconv.Itoa(i int) string 返回?cái)?shù)字 i 所表示的字符串類型的十進(jìn)制數(shù)。
•strconv.FormatFloat(f float64, fmt byte, prec int, bitSize int) string 將 64 位浮點(diǎn)型的數(shù)字轉(zhuǎn)換為字符串,其中 fmt 表示格式(其值可以是 'b' 、 'e' 、 'f' 或 'g' ), prec 表示精度, bitSize 則使用 32 表示 float32,用 64 表示 float64。

針對(duì)從字符串類型轉(zhuǎn)換為數(shù)字類型,Go 提供了以下函數(shù):

•strconv.Atoi(s string) (i int, err error) 將字符串轉(zhuǎn)換為 int 型。
•strconv.ParseFloat(s string, bitSize int) (f float64, err error) 將字符串轉(zhuǎn)換為 float64 型。

利用多返回值的特性,這些函數(shù)會(huì)返回 2 個(gè)值,第 1 個(gè)是轉(zhuǎn)換后的結(jié)果(如果轉(zhuǎn)換成功),第 2 個(gè)是可能出現(xiàn)的錯(cuò)誤,因此,我們一般使用以下形式來進(jìn)行從字符串到其它類型的轉(zhuǎn)換:

val, err = strconv.Atoi(s)

示例:

package main
import (
  "fmt"
  "strconv"
)
func main() {
  origin := "666"
  var an int
  var newS string
  fmt.Printf("int類型的位數(shù)為: %d\n", strconv.IntSize)
  an, _ = strconv.Atoi(origin)
  fmt.Println(an)
  an += 5
  newS = strconv.Itoa(an)
  fmt.Println(newS)
}

輸出結(jié)果為:

int類型的位數(shù)為: 64
666
671

總結(jié)

以上所述是小編給大家介紹的Go語(yǔ)言中strings和strconv包示例代碼詳解,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • go格式“占位符”輸入輸出 類似python的input

    go格式“占位符”輸入輸出 類似python的input

    這篇文章主要介紹了go格式“占位符”, 輸入輸出,類似python的input,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • Golang 操作TSV文件的實(shí)戰(zhàn)示例

    Golang 操作TSV文件的實(shí)戰(zhàn)示例

    本文主要介紹了Golang 操作TSV文件的實(shí)戰(zhàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Golang中由零值和gob庫(kù)特性引起B(yǎng)UG解析

    Golang中由零值和gob庫(kù)特性引起B(yǎng)UG解析

    這篇文章主要為大家介紹了Golang中由零值和gob庫(kù)特性引起B(yǎng)UG解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Golang 并發(fā)以及通道的使用方式

    Golang 并發(fā)以及通道的使用方式

    這篇文章主要介紹了Golang 并發(fā)以及通道的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Golang實(shí)現(xiàn)Redis事務(wù)深入探究

    Golang實(shí)現(xiàn)Redis事務(wù)深入探究

    這篇文章主要介紹了Golang實(shí)現(xiàn)Redis事務(wù)深入探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 一文讓你理解go語(yǔ)言的Context

    一文讓你理解go語(yǔ)言的Context

    在Go語(yǔ)言中,Context(上下文)是一個(gè)類型,用于在程序中傳遞請(qǐng)求范圍的值、截止時(shí)間、取消信號(hào)和其他與請(qǐng)求相關(guān)的上下文信息,它在多個(gè)goroutine之間傳遞這些值,使得并發(fā)編程更加可靠和簡(jiǎn)單,本文詳細(xì)介紹go語(yǔ)言的Context,需要的朋友可以參考下
    2023-05-05
  • golang中json操作的完全指南

    golang中json操作的完全指南

    golang標(biāo)準(zhǔn)庫(kù)有一個(gè)名叫encoding/json的包,包含了JSON的序列化(Marshal)和反序列化(Unmarshal)的能力,下面這篇文章主要給大家介紹了關(guān)于golang中json操作的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 使用Go語(yǔ)言編寫一個(gè)NTP服務(wù)器的流程步驟

    使用Go語(yǔ)言編寫一個(gè)NTP服務(wù)器的流程步驟

    NTP服務(wù)器【Network?Time?Protocol(NTP)】是用來使計(jì)算機(jī)時(shí)間同步化的一種協(xié)議,為了確保封閉局域網(wǎng)內(nèi)多個(gè)服務(wù)器的時(shí)間同步,我們計(jì)劃部署一個(gè)網(wǎng)絡(luò)時(shí)間同步服務(wù)器(NTP服務(wù)器),本文給大家介紹了使用Go語(yǔ)言編寫一個(gè)NTP服務(wù)器的流程步驟,需要的朋友可以參考下
    2024-11-11
  • 詳解Golang net/http包中的RoundTripper接口

    詳解Golang net/http包中的RoundTripper接口

    RoundTripper 是 net/http 包中的一個(gè)接口,定義了處理 HTTP 請(qǐng)求返回和響應(yīng)的方法,是 http.Client 結(jié)構(gòu)體中執(zhí)行 http 請(qǐng)求的核心部分,本文將詳細(xì)的給大家介紹Golang RoundTripper接口,需要的朋友可以參考下
    2023-09-09
  • Go語(yǔ)言框架Beego項(xiàng)目搭建的方法步驟

    Go語(yǔ)言框架Beego項(xiàng)目搭建的方法步驟

    這篇文章主要介紹了Go語(yǔ)言框架Beego項(xiàng)目搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評(píng)論

永胜县| 桃江县| 贵溪市| 蒙城县| 虹口区| 久治县| 余江县| 砚山县| 望谟县| 明星| 施秉县| 江油市| 常宁市| 石阡县| 噶尔县| 枞阳县| 呈贡县| 平安县| 清苑县| 刚察县| 青州市| 进贤县| 塘沽区| 松滋市| 政和县| 无锡市| 九寨沟县| 蒲江县| 瓦房店市| 西丰县| 阳山县| 江津市| 崇义县| 满洲里市| 马边| 南宁市| 融水| 汪清县| 巢湖市| 宁化县| 公安县|