Go语言入门18---字符串的使用以及strings包的使用|Go主题月

289 阅读1分钟

字符串的使用

package main

import "fmt"

func main() {
	/*
	Go中的字符串是一个字节的切片。
		可以通过将内容封装在“”中来创建字符串。
		Go中的字符串是Unicode兼容的,并且是UTF-8编码的。
	字符串是一些字节的集合。
	 */
	//1.定义字符串
	s1:="hello"
	s2:="hello world"
	fmt.Println(s1)
	fmt.Println(s2)

	//2.字符串长度
	fmt.Println(len(s1))
	fmt.Println(len(s2))

	//3.获取某个字节
	fmt.Println(s2[0])//打印为编码
	a:='h'
	b:=104
	fmt.Printf("%c,%c,%c\n",s2[0],a,b)

	//4.字符串的遍历
	for i:=0;i<len(s2);i++ {
		fmt.Printf("%c",s2[i])
	}
	fmt.Println()
	for _,v:=range s2{
		fmt.Printf("%c",v)
	}
	fmt.Println()

	//5.字符串是字节的集合
	slice1:=[]byte{65,66,67,68,69}
	s3:=string(slice1)
	fmt.Println(s3)

	s4:="abcde"
	slice2:=[]byte(s4)
	fmt.Println(slice2)

	//6.字符串不能修改
	fmt.Println(s4)
	//s4[2]='B'

}

image.png

strings包的使用

import

package main

import (
	"fmt"
	"strings"
)

func main() {
	s1:="hello wold"
	//1.是否包含指定的内容,bool类型
	fmt.Println(strings.Contains(s1,"llo"))
	//2.是否包含chars中任意的一个字符,bool类型
	fmt.Println(strings.ContainsAny(s1,"abcd"))
	//3.统计substr在s中出现的次数,int类型
	fmt.Println(strings.Count(s1,"l"))
	//4.以XX的前缀开头,以XX后缀结尾
	s2:="20210315课堂笔记.txt"
	if strings.HasPrefix(s2,"2021") {
		fmt.Println("21年文件")
	}
	if strings.HasSuffix(s2,".txt") {
		fmt.Println("文本文档")
	}
	//5.查找第一次出现下标
	fmt.Println(strings.Index(s1,"yyy"))//不存在返回-1
	fmt.Println(strings.IndexAny(s1,"abcdh"))//任意一个字符
	fmt.Println(strings.LastIndex(s1,"l"))

	//字符串的拼接
	ss1:=[]string{"abc","world","hello"}
	s3:=strings.Join(ss1,"-")
	fmt.Println(s3)

	//切割
	s4:="123,456,789,44"
	ss2:=strings.Split(s4,",")
	for i:=0;i<len(ss2);i++ {
		fmt.Println(ss2[i])
	}

	//重复,自己拼接自己
	s5:=strings.Repeat("hello",5)
	fmt.Println(s5)

	//替换
	s6:=strings.Replace(s1,"l","*",-1)
	fmt.Println(s6)//-1替换所有

	//大小写替换
	s7:="hello WORLD**123"
	fmt.Println(strings.ToLower(s7))
	fmt.Println(strings.ToUpper(s7))

	s8:=s1[0:5]
	fmt.Println(s1)
	fmt.Println(s8)
	fmt.Println(s1[5:])
}

image.png