package main
import (
"fmt"
"regexp"
"strconv"
"strings"
)
func main(){
//1.查看字符串中是否包含某個子串,類似於Python中的__contains__,或者 in
fmt.Println(strings.Contains( "古明地覺" , "古明" )) //true
fmt.Println(strings.Contains( "古明地覺" , "古明地覺" )) //true
fmt.Println(strings.Contains( "古明地覺" , "古明地盆" )) //false
//2.將多個字符串按照一定規則組合在一塊,類似於Python中的join
s := []string{ "古明地盆" , "東方地靈殿" }
fmt.Println(strings.Join(s, "來自" )) //古明地盆來自東方地靈殿
//3.查找字符串中某個子串的位索引,查不到爲-1,類似於Python中的find
fmt.Println(strings.Index( "satori" , "ri" )) //4
fmt.Println(strings.Index( "satori" , "shi" )) //-1
//4.將一個字符串重複n次,類似Python中的*
fmt.Println(strings.Repeat( "satori" , 3)) //satorisatorisatori
//5.將一個字符串按照指定字符進行切割,類似於Python中的split
s1:= "satori|koishi|古明地盆|古明地戀"
fmt.Println(strings.Split(s1, "|" )) //[satori koishi 古明地盆 古明地戀]
//6.去掉字符串兩頭,類似於Python中的strip
fmt.Println(strings.Trim( "aababbb古明地盆古明地戀bababaa" , "ab" )) //古明地盆古明地戀
//7.去掉所有的空格,將元素放在一個切片中
fmt.Println(strings.Fields( " are 古明地盆 ok" )) //[are 古明地盆 ok]
//8.計算指定字符出現的次數
fmt.Println(strings.Count( "古明地盆古明地戀" , "古" )) //2
//9.判斷字符串是否以指定字符開頭
fmt.Println(strings.HasPrefix( "satori" , "sa" )) //true
//10.判斷字符串是否以指定字符結尾
fmt.Println(strings.HasSuffix( "satori" , "ri" )) //true
//----------------------------
//1.轉化爲字符串後追加到字節數組
slice := make([]byte, 0, 1024)
slice = strconv.AppendBool(slice, true)
//第三個參數表示以多少進制追加
slice = strconv.AppendInt(slice, 1024, 10)
slice = strconv.AppendQuote(slice, "satori" )
slice = strconv.AppendQuote(slice, "古明地盆" )
//轉化爲字符串打印
fmt.Println(string(slice)) //true1024"satori""古明地盆"
//2.字符串轉整型
//具有兩個返回值,另一個是錯誤信息
fmt.Println(strconv.Atoi( "6666" )) //6666 <nil>
//3.整型轉字符串
fmt.Println(strconv.Itoa(2333)) //2333
fmt.Printf( "%q\n" , strconv.Itoa(2333)) //"2333"
//正則表達式,熟悉Python的話,這個自不必說,只介紹不同的地方
//Python表示原生字符串需要在""前面加上r,go中使用``表示即可
//步驟分爲兩步
//1.使用MustCompile解析並返回一個正則表達式
reg := regexp.MustCompile(`\d{4}`)
//2.調用需要的函數查找
result1 := reg.FindAllString( "123-1234-12345" ,-1)
result2 := reg.FindAllStringSubmatch( "123-1234-12345" ,-1)
fmt.Println(result1) //[1234 1234]
fmt.Println(result2) //[[1234] [1234]]
}
|