string

作者: isuntong | 来源:发表于2020-03-09 13:30 被阅读0次
    package main
    
    import "fmt"
    
    //23
    func main() {
        /*
        Go中的字符串是一个字节的切片
    
        字符串是一些字节的集合
            理解为一个字符序列
            那也会有索引等
    
    
        字符:对应编码表中的编码值
    
        */
    
        //1. 定义
        s1 := "hello中国"
        s2 := `hello world`
        fmt.Println(s1)
        fmt.Println(s2)
    
        //2. 字符串的长度
        fmt.Println(len(s1))
        fmt.Println(len(s2))
    
        //3. 获取某个字符
        fmt.Println(s2[0])
        a := 'h'
        b := 104
        fmt.Printf("%c,%c,%c\n",s2[0],a,b)
    
        //4. 字符串的遍历
        for i:=0;i<len(s2);i++ {
            fmt.Printf("%c",s2[i])
        }
    
        for i:=0;i<len(s1);i++ {
            fmt.Printf("%c",s1[i]) //乱码,因为汉字3个字节
        }
    
        //for range
        for i,v := range s2 {
            fmt.Println(i,v)
        }
    
    
        //5. 字符串是字节的集合
        slice1 := []byte{65,66,67,68,69}
        s3 := string(slice1) //根据一个字节切片,构建字符串
        fmt.Println(s3)
    
        s4 := "abcdef"
        slice2 := []byte(s4) //根据字符串获取对应的粽子节切片
        fmt.Println(slice2)
        
        //字符串不能修改
        
    
    }
    
    

    strings包的使用

    package main
    
    import (
        "fmt"
        "strings"
    )
    
    //23
    func main() {
        /*
        Go中的字符串是一个字节的切片
    
        字符串是一些字节的集合
            理解为一个字符序列
            那也会有索引等
    
    
        字符:对应编码表中的编码值
    
        */
    
        //1. 定义
        s1 := "hello中国"
        s2 := `hello world`
        fmt.Println(s1)
        fmt.Println(s2)
    
        //2. 字符串的长度
        fmt.Println(len(s1))
        fmt.Println(len(s2))
    
        //3. 获取某个字符
        fmt.Println(s2[0])
        a := 'h'
        b := 104
        fmt.Printf("%c,%c,%c\n",s2[0],a,b)
    
        //4. 字符串的遍历
        for i:=0;i<len(s2);i++ {
            fmt.Printf("%c",s2[i])
        }
    
        for i:=0;i<len(s1);i++ {
            fmt.Printf("%c",s1[i]) //乱码,因为汉字3个字节
        }
    
        //for range
        for i,v := range s2 {
            fmt.Println(i,v)
        }
    
    
        //5. 字符串是字节的集合
        slice1 := []byte{65,66,67,68,69}
        s3 := string(slice1) //根据一个字节切片,构建字符串
        fmt.Println(s3)
    
        s4 := "abcdef"
        slice2 := []byte(s4) //根据字符串获取对应的粽子节切片
        fmt.Println(slice2)
    
        //字符串不能修改
    
    
        /*
        strings包的使用
        */
        ss1 := "helloworld"
        fmt.Println(strings.Contains(ss1, "h")) //true
        //是否包含任意一个字符
        fmt.Println(strings.ContainsAny(ss1, "abcd")) //true
        //统计出现次数
        fmt.Println(strings.Count(ss1, "l")) //3
    
        ss2 := "20191234课堂笔记.txt"
        //以前缀开头,后缀结尾
        if strings.HasPrefix(ss2, "2019") {
            fmt.Println("2019年的东西")
        }
        if strings.HasSuffix(ss2, ".txt") {
            fmt.Println("文本文件")
        }
    
        fmt.Println(strings.Index(ss1, "l")) //2 查找首次出现位置,不存在返回-1
        fmt.Println(strings.IndexAny(ss1,"abcdh")) //0 查找任意字符出现的位置
        fmt.Println(strings.LastIndex(ss1,"l")) //8 从后往前找
    
        //拼接
        ss3 := []string{"abc","st","hello","world"}
        ss4 := strings.Join(ss3,"****")
        fmt.Println(ss4)
    
        //切割
        ss5 := "123,456,789"
        ss6 := strings.Split(ss5,",")
        fmt.Println(ss6)
    
        //重复
        ss7 := strings.Repeat("hello", 5)
        fmt.Println(ss7) //hellohellohellohellohello
    
        //替换 helloworld                          -1全部替换
        ss8 := strings.Replace(ss1, "l", "*", 2)
        fmt.Println(ss8) //he**oworld
    
        //大小写
        ss9 := "DAFAafasfa"
        fmt.Println(strings.ToLower(ss9)) //dafaafasfa
        fmt.Println(strings.ToUpper(ss9)) //DAFAAFASFA
    
        //截取
        fmt.Println(ss1)
        ss10 := s1[0:5]
        fmt.Println(ss10) //hello
    
    }
    
    

    strconv包的使用

    /*
        strconv:字符串和基本数据类型之间的转换
        */
        // fmt.Println("aa"+100) +左右类型需要一样
        //1. bool类型
        ss11 := "true"
        b1,err := strconv.ParseBool(ss11)
        if err != nil {
            fmt.Println(err)
            return
        }
        fmt.Printf("%T,%t\n",b1,b1)
    
        ss12 := strconv.FormatBool(b1)
        fmt.Printf("%T,%s\n",ss12,ss12)
    
        //整数
        ss13 := "100"
        i2,err := strconv.ParseInt(ss13,10,64)
        if err != nil {
            fmt.Println(err)
            return
        }
        fmt.Printf("%T,%d\n",i2,i2) //int64,100
    
        ss14 := strconv.FormatInt(i2,10)
        fmt.Printf("%T,%s\n",ss14,ss14) //string,100
    
        //itoa(),atoi()
        i3,err := strconv.Atoi("-42") //int,-42  转为int类型
        fmt.Printf("%T,%d\n",i3,i3)
    
        ss15 := strconv.Itoa(-42)
        fmt.Printf("%T,%s\n",ss15,ss15) //string,-42 转为string
    
    

    相关文章

      网友评论

          本文标题:string

          本文链接:https://www.haomeiwen.com/subject/uktpdhtx.html