string
定义
由双引号包裹的内容就是字符串
通过:=赋值给变量
s := "i'm ok" fmt.Println(s)
打印结果:
i'm ok
定义多行字符串,按预制格式输出
s2 := ` 王 中 阳 ` fmt.Println(s2)
打印结果:
使用`原样输出字符串`
s3 := `/Users/wangzhongyang/Code/go/src/github.com/studygo/day01/08string` fmt.Println(s3)
打印结果:
/Users/wangzhongyang/Code/go/src/github.com/studygo/day01/08string
使用 \ 作为转义标识符
path := ""\Users\wangzhongyang\Code\go\src\github.com\studygo\day01\07fmt"" fmt.Println(path)
发现复制GOland的代码到markdown会如下自动转义,所以附上我Goland中的代码截图:
打印结果:
"\Users\wangzhongyang\Code\go\src\github.com\studygo\day01\07fmt"
字符串常用操作
长度使用len()
s3 := `/Users/wangzhongyang/Code/go/src/github.com/studygo/day01/08string` fmt.Println(len(s3))
打印结果:66
拼接使用+或者Sprintf
name := "产品经理" word := "Lucky" ss := name + word fmt.Println(name + word) fmt.Println(ss) ss1 := fmt.Sprintf("%s%s", name, word) //和Printf相比在开头多了一个 S fmt.Println(ss1)
打印结果都是:产品经理Lucky
注意:注意fmt拼接字符串的函数和Printf相比在开头多了一个S
包含判断
ss := "产品经理Lucky" fmt.Println(strings.Contains(ss, "王中阳")) //是否包含指定字符串 fmt.Println(strings.HasPrefix(ss, "王中阳")) //是否以指定字符串开头 fmt.Println(strings.HasSuffix(ss, "王中阳")) //是否以指定字符串结尾
打印结果都是:false
子串出现的位置
s4 := "abcdecd" s5 := "cd" fmt.Println(strings.Index(s4, s5)) //第一次出现的位置 fmt.Println(strings.LastIndex(s4, s5)) //最后一次出现的位置
打印结果:2 5
字符串转数组(分割字符转) Split
s3 := `/Users/wangzhongyang/Code/go/src/github.com/studygo/day01/08string` ret := strings.Split(s3, "/") fmt.Println(ret)
打印结果:[ Users wangzhongyang Code go src github.com studygo day01 08string]
数组转字符串(拼接字符转)Join
fmt.Println(strings.Join(ret, "-"))
打印结果:-Users-wangzhongyang-Code-go-src-github.com-studygo-day01-08string
fmt
Go的fmt是常用的格式化代码工具
今天介绍一下fmt的日常用法:fmt.Printf()
数值相关
n := 100 fmt.Printf("类型:%T\n", n) //类型 fmt.Printf("值:%v\n", n) //值 fmt.Printf("二进制:%b\n", n) //二进制binary fmt.Printf("十进制:%d\n", n) //十进制decimal fmt.Printf("八进制:%o\n", n) //八进制Octal fmt.Printf("十六进制:%x\n", n) //十六进制Hexadecimal
输出结果:
类型:int 值:100 二进制:1100100 十进制:100 八进制:144 十六进制:64
字符串相关
s := "wangzhongyang" fmt.Printf("字符串:%s\n", s) //字符串 fmt.Printf("值:%v\n", s) //值 fmt.Printf("字符:%#c\n", s) //字符 fmt.Printf("值 另外返回类型的标识符:%#v\n", s) //值 另外返回类型的标识符
输出结果:
字符串:wangzhongyang 值:wangzhongyang 字符:%!c(string=wangzhongyang) 值 另外返回类型的标识符:"wangzhongyang"