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]]
}
package main
import (
"fmt"
"regexp"
"st