这是我参与2022首次更文挑战的第20天,活动详情查看:2022首次更文挑战」。
每个编程语言中 string 都是最常用类型之一;对数据进行格式化输出的常用操作。
今天介绍Go常用的字符串string和数据格式化类fmt
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"
最后
感谢阅读,欢迎大家三连:点赞、收藏、投币(关注)!!!