golang 中字符串相關操作用得最多的基礎庫是 strings 和 strconv?
1、strings.HasPrefix 判斷字符串開頭
常見的場景是用來判斷服務地址是HTTP還是HTTPS 協議,例如:
func?main()?{ ???str?:=?"http://www.baidu.com" ???if?ok?:=?strings.HasPrefix(str,"http://");ok?{ ??????fmt.Println("it's?http?protocol") ???}else{ ??????fmt.Println("unknown") ???} }
2、strings.HasSuffix 判斷字符串后綴
場景,用于判斷文件類型,例如圖片是否是png格式
func?main()?{ ???pic?:=?"baidu.png" ???if?ok?:=?strings.HasSuffix(pic,"png");ok?{ ??????fmt.Println("it's?a?png?image.") ???} }
3、strings.Contains 判斷字符串中是否包含有子字符串
func?main()?{ ???str?:=?"http://www.baidu.com" ???if?ok?:=?strings.Contains(str,"baidu");ok{ ??????fmt.Println("ok") ???} }
4、strings.Count 計算子字符串出現次數
func?main()?{ ???str?:=?"http://www.baidu.com/" ???fmt.Println(strings.Count(str,"/")) }
5、strings.Index 返回子字符串第一次出現位置,不存在則返回-1
對應的是strings.LastIndex ,返回最后一次出現位置,不存在返回-1
func?main()?{ ???str?:=?"http://www.baidu.com/" ???fmt.Println(strings.Index(str,"google")) ???fmt.Println(strings.Index(str,"/")) ???fmt.Println(strings.LastIndex(str,"google")) ???fmt.Println(strings.LastIndex(str,"/")) }
輸出
-1 5 -1 20
6、strings.Title 返回首字母大寫的標題格式
fmt.Println(strings.Title("welcome?to?baidu"))
輸出
Welcome?To?Baidu
7、大小寫轉換
strings.ToUpper ? 轉換成大寫
strings.ToLower ? 轉換成小寫
fmt.Println(strings.ToLower("GOPHER")) fmt.Println(strings.ToUpper("gopher"))
輸出
gopher GOPHER
8、strings.Repeat 返回count個s串聯的字符串
fmt.Println("http://"?+?strings.Repeat("w",3)?+?".baidu.com")
輸出
http://www.baidu.com
9、strings.Replace ?字符串替換
當n<0 時,將替換所有字符串
fmt.Println(strings.Replace(str,"/","#",1)) fmt.Println(strings.Replace(str,"/","#",-1))
輸出
http:#/www.baidu.com/ http:##www.baidu.com#
10、strings.Trim 去掉前后空白符
類似的還有strings.TrimLeft 、strings.TrimRight
fmt.Println(strings.Trim("??http://www.baidu.com?????????","????"))
11、strings.Split 字符串分隔
str?:=?"http://www.baidu.com/" fmt.Println(strings.Split(str,"/"))
輸出
[http:??www.baidu.com?]
12、strings.Join 字符串組合
s?:=?[]string{"www","baidu","com"} fmt.Println(strings.Join(s,"."))
輸出
www.baidu.com
13、字符串與整型數字互轉
strconv.Itoa ? 整型轉字符串
strconv.Atoi ? 字符串轉整型,注意這個函數會返回int 和 err
func?Atoi(s?string)?(i?int,?err?error) n?:=?123 fmt.Printf("n?type:%T\n?strconv.Itoa(n)?Type:?%T\n",n,strconv.Itoa(n)) m?:=?"456" m2,_?:=?strconv.Atoi(m) fmt.Printf("n?type:%T\n?strconv.Atoi(m)?Type:?%T\n",n,m2)
輸出
n?type:int ?strconv.Itoa(n)?Type:?string ? n?type:int ?strconv.Atoi(m)?Type:?int
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。