package main
import (
"fmt"
"strings"
)
/**
* 字符串
*/
func main() {
var s1 = "string1"
var s2 string = "string2"
s3 := "string3"
fmt.Printf("s1:%v,\rs2:%v\ns3:%v", s1, s2, s3)
fmt.Printf("\n\ns1:%v,\ns2:%v\ns3:%v\n", s1, s2, s3)
//\转义符,比如输出 " \ 等需要转义
s4 := "c:\\\\work"
fmt.Println(s4)
//多行字符串定义,需要使用转义字符进行定义,不方便
s5 := "xsdcec\ncwcewc"
fmt.Println(s5)
//采用反引号定义多行字符串更方便会保留格式,``这个是反引号不是单引号'',``反引号是英文模式下,tab键上面那个
s6 := `bxgwche
xwcwec
cwc
cewvtr`
fmt.Println(s6)
//字符串常见操作
//len(字符串变量) 获取字符串变量的长度
len1 := "ab" //长度2 英文一个字母一个字节
len2 := "我们" //长度6 汉字一个汉字三个字节
fmt.Println(len(len1), len(len2))
//字符串拼接 + 或者 fmt.Sprintf()
add1 := "add1"
add2 := "add2"
//fmt.Sprintf可以更自由拼接
fmt.Println(fmt.Sprintf("%v %v xwce %T", add1, add2, add1))
//+直接拼接两个字符串
fmt.Println(add1 + add2)
//分割字符串,strings.Split();将字符串按照某个规则切割为切片
s7 := "dcdscs/xwcewc/vrb/nyum/rt"
arr1 := strings.Split(s7, "/")
fmt.Printf("值:%v,类型:%T\n", arr1, arr1)
//拼接字符串,将切片元素按照某个规则拼接为字符串,切片转字符串
s8 := strings.Join(arr1, ",")
fmt.Printf("值:%v,类型:%T\n", s8, s8)
//定义切片
arr2 := []string{"xxx", "yyy", "zzz"}
fmt.Printf("值:%v,类型:%T\n", arr2, arr2)
//检测某个字符串中是否包含另外一个字符串 strings.Contains()
s9 := "xxx/yyy zzz"
s10 := "xxx"
fmt.Println(strings.Contains(s9, s10))
//检测字符串是否以另外一个字符串开始
fmt.Println(strings.HasPrefix(s9, s10))
//检测字符串是否以另外一个字符串结尾
fmt.Println(strings.HasSuffix(s9, s10))
s11 := "aabbccaabbccdd"
s12 := "cc"
//检测某个字符串中第一次出现另一个字符串的下标,下标从0开始从左往右
fmt.Println(strings.Index(s11, s12))
//检测某个字符串中最后一次出现另一个字符串的下标,下标从0开始从左往右
fmt.Println(strings.LastIndex(s11, s12))
//如果某个字符串中没有另外一个字符串则输出下标-1
fmt.Println(strings.Index(s11, "xx"))
}



290

被折叠的 条评论
为什么被折叠?



