创建字符串字面量
解释型字符串字面量是用双引号括起来的字符,如:“hello”
s := "hello"
还可在其中添加转移字符
理解rune字面量
使用rune字面量,可将解释型字面量分成多行,还可在其中包含制表符和其他格式选项
原始字符串字面量是用反引号`
括起,不同于解释型字符,原始字符串中的反斜杠没有特殊含义,Go按原样解释这种字符串
package main
import "fmt"
func main(){
s := `hello,wolld`
fmt.Println(s)
}
//hello,wolld
拼接字符串
可以使用+
和+=
来拼接字符串
s := "hello"
r := "world"
new_s :=s+r
s+=r
如果要拼接整数与字符串,进行类型转换
s :=" hello"
r :=2
s+=strconv.Itoa(r)
使用缓冲区拼接字符串
如果需要对大量字符串进行拼接,可以使用缓冲区的方式,因为这样的效率比使用+
号要高
package main
import (
"fmt"
"bytes"
)
func main(){
var buffer bytes.Buffer
for i:=0;i<500;i++{
buffer.WriteString("z")
}
fmt.Println(buffer.String())
}
- 创建一个空的字节缓冲区,并将其赋值给变量buffer
- 一个运行500次的循环,每次循环都将字符串“z”写入缓冲区
- 循环结束后,对缓冲区调用函数String()以字符串的方式输出结果
理解字符串
字符串的单个字符存储在计算机中,实际上就是数字,字符串与数字的映射符合ASCII字符集编码,但是包容更多国家字符的是UNICODE编码,UTF-8是实现UNICODE编码字符集的一种
s :="hello"
//获得字符串的长度
fmt.Printf(len(s))
s := "hello"
fmt.Printf(s[0])
//输出的是字符的十进制编码 'h'→104
//outputs 104
//使用格式设置将十进制值转换成字符和二进制表示
s := "hello"
//字符表示
fmt.Println("%q",s[0])
//二进制表示
fmt.Println("%b",s[0])
处理字符串
可是使用标准库中的strings包提供的方法来处理字符串
//将字符串转换为小写
s :="hello"
fmt.Println(strings.ToLower(s))
//在字符串中查找子串,返回开始索引,没找到返回-1
fmt.Println(strings.Index("surface","face"))
//删除字符串中开头和末尾的空格
fmt.Println(strings.TrimSpace(" i don't know "))
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容