zoukankan      html  css  js  c++  java
  • Golang字符串函数认识(一)

    package main
    import (
        "fmt"
        "strings"
        "strconv"
    )
    
    
    func main(){
        //返回字符串的(字节)长度,相当于PHP的strlen
        str := "hello世界"  //11 ,golang的编码统一为utf-8,字母和数字分别占一个字节,汉子占用3个字节
        // str := "hello"      //5
        fmt.Println(len(str))
    
    
        //字符串遍历
        str2 := "hello世界"
        //如果有中文,需要转切片,不然会出现乱码,因为是按照字符串的字节长度遍历
        str2_r := []rune(str2)
        for i := 0; i < len(str2_r); i++ {
            fmt.Printf("%c
    ",str2_r[i])
        }
    
    
        //字符串转整数
        //第一个参数是要转化成的字符串,第二个是错误信息.这里需要引用strconv包
        n, err := strconv.Atoi("123")  
        if err != nil { //如果有错
            fmt.Println("转换错误", err)
        } else {    //如果成功
            fmt.Println("转换成功", n)
        }    
    
    
        //整数转字符串 
        str = strconv.Itoa(12345)
        fmt.Printf("str=%v, str=%T", str, str)    //str=12345, str=string
    
    
        //字符串转[]byte
        var  bytes = []byte("hello golang")
        fmt.Println(bytes) //str=12345, str=string[104 101 108 108 111 32 103 111 108 97 110 103]
    
    
        //[]byte转字符串
        str = string([]byte{97, 98, 99})
        fmt.Println(str)  //abc  的asc码分别是97,98,99
    
        //十进制转化成2,8,16进制,返回对应的字符串
        str = strconv.FormatInt(123, 2)
        fmt.Printf("123对应的二进制是=%v
    ", str)
        str = strconv.FormatInt(123, 8)
        fmt.Printf("123对应的八进制是=%v
    ", str)
        str = strconv.FormatInt(123, 16) 
        fmt.Printf("123对应的十六进制是=%v
    ", str)
        //123对应的二进制是=1111011
        //123对应的八进制是=173
        //123对应的十六进制是=7b
    
    
        //判断一个字符串中是否包含指定字符串  ,相当于php中的strpos,但是php中可能会返回下标
        status := strings.Contains("hello world", "hello")
        fmt.Printf("status=%v
    ", status)   //status=true
    
        //统计一个字符串中有几个指定的字符
        count := strings.Count("hello world", "l")
        fmt.Printf("字符存在个数:%v
    ", count) //字符存在个数:3;如果没有,则0
    
        //字符串比较:不区分大小写
        status = strings.EqualFold("abc", "ABC")  
        fmt.Printf("status=%v
    ", status)    //status=true
    
        //字符串比较:区分大小写  两个=
        fmt.Printf("status=%v", "abc" == "ABC")//status=false 
        
        //返回子字符串在指定字符串中第一次出现的index值(位置),如果没有返回-1
        index := strings.Index("test_str", "s")
        fmt.Printf("index=%v", index)  //index=2
    }
  • 相关阅读:
    软件需求与分析课堂讨论一
    问题账户需求分析
    个人阅读计划
    个人总结
    团队其他各组项目意见
    大白鱼备考云笔记冲刺周期第七天
    大白鱼备考云笔记冲刺周期第六天
    大白鱼备考云笔记冲刺周期第五天
    大白鱼备考云笔记冲刺周期第四天
    大白鱼备考云笔记冲刺周期第三天
  • 原文地址:https://www.cnblogs.com/wt645631686/p/9503990.html
Copyright © 2011-2022 走看看