string的使用:
1.""或者``(双引号或者反引号)
2.A-65,a-97,0-48
3.字符串是字节的集合
4.每个字符都有固定的位置,可以通过下标访问(可能是其数字代号),中文字符占3个字节
package main
import "fmt"
func main() {
/*
string的使用:
1.""或者``(双引号或者反引号)
2.A-65,a-97,0-48
3.字符串是字节的集合
4.每个字符都有固定的位置,可以通过下标访问(可能是其数字代号),中文字符占3个字节
*/
//定义字符串
s1 := "hello"
s2 := "liuyang"
fmt.Printf("s1: %v\n", s1)
fmt.Printf("s2: %v\n", s2)
fmt.Printf("%c %c %c", s1[0], s1[1], s2[0])
for _, v := range s1 {
//fmt.Println(i, v)
fmt.Printf("%c", v)
}
//字符串切片
slice1 := []byte{65, 66, 67, 68, 69}
s3 := string(slice1) //根据一个字节切片,构建字符串
fmt.Printf("s3: %v\n", s3)
s4 := "abcde"
slice2 := []byte(s4) //根据字符串,获取对应的切片
fmt.Printf("slice2: %v\n", slice2)
//字符串不能修改
}
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
/*
strings包的使用:
*/
s1 := "liuyang"
fmt.Println(strings.Contains(s1, "yang")) //strings.contains(字符串,子串),判断子串是否在字符串中
fmt.Println(strings.ContainsAny(s1, "abcd")) //任意一个字符在s1中出现则为真
fmt.Println(strings.Count(s1, "abcd")) //统计"abcd"在s1中出现的次数
//判断前缀后缀,strings.HasPrefix,strings.HasSuffix
s2 := "20190525课堂笔记.txt"
if strings.HasPrefix(s2, "201905") { //判断是否是以201905开头
fmt.Println("19年5月的文件")
}
if strings.HasSuffix(s2, ".txt") {
fmt.Println("是文本文件")
}
//strings.Index,返回第一次出现子串的位置,不存在的话就返回-1
fmt.Println(strings.Index(s2, "5") + 1)
//strings.IndexAny,返回任意一个子串中字符第一次出现的位置
fmt.Println(strings.IndexAny(s1, "ahdh"))
//string.LastIndex(s1,"l"),判断l最后在s1中出现的位置
fmt.Println(strings.LastIndex(s1, "l"))
//字符串拼接
ss1 := []string{"abc", "world", "hello", "ruby"}
s3 := strings.Join(ss1, "-") //使得ss1中每个元素以*连接
fmt.Printf("s3: %v\n", s3)
//字符串切割:按照指定字符切割成字符串切片
s4 := "123,456,789,10"
s5 := strings.Split(s4, ",") //按照逗号切割
fmt.Printf("s5: %v\n", s5)
for i := 0; i < len(s5); i++ {
fmt.Println(s5[i])
}
//字符串重复,srings.Repeat(字符串,重复次数)
s6 := strings.Repeat("hello", 5)
fmt.Printf("s6: %v\n", s6)
//字符串替换,strings.Replace(字符串,目标,要替换为的字符,要替换几个?)
s7 := strings.Replace(s6, "l", "*", 2) //将s6中出现的前2个替换为*
fmt.Printf("s7: %v\n", s7)
fmt.Println(strings.ToUpper(s6)) //ToUpper,ToLower,切换大小写
fmt.Println(strings.ToLower(s6))
//截取子串
s8 := s6[3:8] //不包含5
fmt.Printf("s8: %v\n", s8)
/*
strconv包的使用:字符串和基本类型的转化
1.strconv.Atoi:字符串转整型
2.strconv.Itoa:整型转字符串
3.b,err:=strconv.ParseBool("true")//转换成bool
*/
}