字符串
Go 中的字符串显示为原始数据类型。 Go 中字符串的内部实现使用 UTF-8 编码。字符串的值为双引号(”)中的内容,非ASCII字符可以直接加到Go语言的源码中
GO语言中的字符串用双引号括起来
GO语言中的单引号是字符
// 字符串
s := "Hello 中国"
// 单独的字母、汉字、符合表示一个字符
c1 := 'h'
c2 := '1'
c3 := '中'
// 字节:1字节=8Bit(8个二进制位)
// 1个字符'A'=1个字节
// 1个utf8编码的汉字'中'= 一般占3个字节
字符串转义符
转义字符含义
(返回到行首)
n 换行(直接跳到同列位置的下一行)
ttab
的单引号
“双引号
反斜杠
对字符串的常用操作
方法 介绍
len(str) 求长度
+或fmt.Sprintf 拼接字符串
strings.Split 分割
strings.contains 判断是否包含
.,.前缀/后缀判断
.Index(),.()子串出现的位置
.Join(a[], sep )加入操作
package main
import (
"fmt"
"strings"
)
// 字符串
func main(){
// 本来是具有特殊含义的,告诉程序就是一个单纯的
path := ""E:\36期Python全栈开发资料\Administrator(8E5370323193)\预习(2)""
path1 := "'E:\36期Python全栈开发资料\Administrator(8E5370323193)\预习(2)'"
fmt.Println(path)
fmt.Println(path1)
s := "I'm ok"
fmt.Println(s)
// 多行的字符串
s2 := `
世情薄
人情恶
雨送黄昏花易落
`
fmt.Println(s2)
s3 := `E:36期Python全栈开发资料Administrator(8E5370323193)预习(2)`
fmt.Println(s3)
// 字符串相关操作
fmt.Println(len(s3))
// 字符串拼接
name := "理想"
world := "远大"
ss := name + world
fmt.Println(ss)
ss1 := fmt.Sprintf("%s%s", name, world)
// fmt.Printf("%s%s", name, world)
fmt.Println(ss1)
// 分割
ret := strings.Split(s3, "\")
fmt.Println(ret)
// 包含
fmt.Println(strings.Contains(ss, "理想"))
// 前缀
fmt.Println(strings.HasPrefix(ss, "理想"))
// 后缀
fmt.Println(strings.HasSuffix(ss, "理想"))
s4 := "abcded"
fmt.Println(strings.Index(s4, "c"))
fmt.Println(strings.LastIndex(s4, "c"))
fmt.Println(strings.Index(s4, "d"))
fmt.Println(strings.LastIndex(s4, "d"))
// 拼接
fmt.Println(strings.Join(ret, "+"))
}
字节和符文类型
字符用单引号 (‘) 括起来
Go 语言中有两种类型的字符:
uint8 类型,或字节类型,表示 ASCII 码中的一个字符。符文类型,表示一个 UTF-8 字符。 rune 类型实际上是一个 int32
字符串的底层是字节数组,可以与[]byte类型相互转换。字符串不能被修改 字符串是由字节组成的,所以字符串的长度就是字节的长度。 rune 类型用于表示 utf8 字符,一个 rune 字符由一个或多个字节组成。
修改字符串
要修改一个字符串,需要先转换成[]rune或者[]byte,然后再转换成。无论转换如何,都会重新分配内存,并复制字节数组。
类型转换
强制的基本语法如下:
T(表达式)
其中 T 表示要转换的类型。表达式包括变量、复杂运算符和函数返回值。
package main
import (
"fmt"
)
func main() {
s := "Hello 中国"
// len()求的是byte字节的数量
n := len(s)
fmt.Println(n)
// for i := 0; i < len(s); i++ {
// fmt.Println(s[i])
// fmt.Printf("%cn", s[i]) // %c:字符
// }
// 字符串修改
s2 := "白萝卜" // [白 萝 卜]
s3 := []rune(s2) // 把字符串强制转换成了一个rune切片
s3[0] = '红' // 单引号表示字符
fmt.Println(string(s3)) // 把rune切片强制转换成字符串
c1 := "红"
c2 := '红' // rune(int32)
fmt.Printf("c1:%T c2:%Tn", c1, c2) // c1:string c2:int32
c3 := "H"
c4 := 'H'
c5 := byte('H')
fmt.Printf("c3:%T c4:%Tn", c3, c4) // c3:string c4:int32
fmt.Printf("c4:%dn", c4) // c4:72
fmt.Printf("c5:%Tn", c5) // c5:uint8
// 类型转换
n1 := 10 // int
var f float64
f = float64(n1)
fmt.Println(f)
fmt.Printf("%Tn", f) // float64
}
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容