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]] }