Go string和fmt 详解
这是我参与2022首次更文挑战的第20天,活动详情查看:2022首次更文挑战」。
每个编程语言中 string 都是最常用类型之一;对数据进行格式化输出的常用操作。
今天介绍Go常用的字符串string和数据格式化类fmt
string
定义
由双引号包裹的内容就是字符串
通过:=赋值给变量
css
s := "i'm ok" fmt.Println(s)打印结果:
css
i'm ok定义多行字符串,按预制格式输出
go
```s2 := ` 王 中 阳 ` fmt.Println(s2)``
打印结果:

## 使用\`原样输出字符串\`
``` bash
```s3 := `/Users/wangzhongyang/Code/go/src/github.com/studygo/day01/08string` fmt.Println(s3)``
打印结果:
``` bash
/Users/wangzhongyang/Code/go/src/github.com/studygo/day01/08string使用 \ 作为转义标识符
go
path := ""\Users\wangzhongyang\Code\go\src\github.com\studygo\day01\07fmt"" fmt.Println(path)发现复制GOland的代码到markdown会如下自动转义,所以附上我Goland中的代码截图:
打印结果:
css
"\Users\wangzhongyang\Code\go\src\github.com\studygo\day01\07fmt"字符串常用操作
长度使用len()
go
```s3 := `/Users/wangzhongyang/Code/go/src/github.com/studygo/day01/08string` fmt.Println(len(s3))``
打印结果:66
## 拼接使用+或者Sprintf
``` arduino
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
包含判断
css
ss := "产品经理Lucky" fmt.Println(strings.Contains(ss, "王中阳")) //是否包含指定字符串 fmt.Println(strings.HasPrefix(ss, "王中阳")) //是否以指定字符串开头 fmt.Println(strings.HasSuffix(ss, "王中阳")) //是否以指定字符串结尾打印结果都是:false
子串出现的位置
css
s4 := "abcdecd" s5 := "cd" fmt.Println(strings.Index(s4, s5)) //第一次出现的位置 fmt.Println(strings.LastIndex(s4, s5)) //最后一次出现的位置打印结果:2 5
字符串转数组(分割字符转) Split
go
```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
``` less
fmt.Println(strings.Join(ret, "-"))打印结果:-Users-wangzhongyang-Code-go-src-github.com-studygo-day01-08string
fmt
Go的fmt是常用的格式化代码工具
今天介绍一下fmt的日常用法:fmt.Printf()
数值相关
swift
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输出结果:
arduino
类型:int 值:100 二进制:1100100 十进制:100 八进制:144 十六进制:64字符串相关
swift
s := "wangzhongyang" fmt.Printf("字符串:%s\n", s) //字符串 fmt.Printf("值:%v\n", s) //值 fmt.Printf("字符:%#c\n", s) //字符 fmt.Printf("值 另外返回类型的标识符:%#v\n", s) //值 另外返回类型的标识符输出结果:
c
字符串:wangzhongyang 值:wangzhongyang 字符:%!c(string=wangzhongyang) 值 另外返回类型的标识符:"wangzhongyang"最后
感谢阅读,欢迎大家三连:点赞、收藏、投币(关注)!!!
