package main import ( "fmt" "strings" ) func main() { // 检查是否包含子串 str := "believe" sub := "lie" if strings.Contains(str, sub) { fmt.Printf("%+v包含%+v \n", str, sub) // believe包含lie } else { fmt.Printf("%+v不包含%+v \n", str, sub) } // 重要提醒:strings.Contains()是区分大小写的 str = "believe" sub = "lIe" if strings.Contains(str, sub) { fmt.Printf("%+v包含%+v \n", str, sub) } else { fmt.Printf("%+v不包含%+v \n", str, sub) // believe不包含lIe } // 如果要实现不区分大小写检查是否包含子串,可先使用strings.ToLower()将两者都转为全小写 str = "believe" sub = "lIe" strLower := strings.ToLower(str) subLower := strings.ToLower(sub) if strings.Contains(strLower, subLower) { fmt.Printf("%+v包含%+v \n", str, sub) // believe包含lIe } else { fmt.Printf("%+v不包含%+v \n", str, sub) } // 截取子串 str = "believe" fmt.Printf("%+v \n", str[2:5]) // lie // b e l i e v e // 0 1 2 3 4 5 6 // _ _ l i e _ _ [2:5]表示截取第2个字母(含)至第5个字母(不含)之间的子串 // 截取子串可以不指定起始位置,也可以不指定结束位置,还可以起始位置和结束位置都不指定 str = "believe" fmt.Printf("%+v \n", str[:5]) // belie fmt.Printf("%+v \n", str[2:]) // lieve fmt.Printf("%+v \n", str[:]) // believe // b e l i e v e // 0 1 2 3 4 5 6 // b e l i e _ _ [:5]表示截取从开始至第5个字母(不含)之间的子串 // _ _ l i e v e [2:]表示截取第2个字母(含)至最后的子串 // b e l i e v e [:]表示截取从开始至最后的子串,实际上就是没有截取直接获取整个字符串 // 截取字符串的[start:end]用法也适用于截取切片 var slice []string slice = append(slice, "刘一") // 第0个 slice = append(slice, "陈二") // 第1个 slice = append(slice, "张三") // 第2个 张三 --- 起始位置(含) slice = append(slice, "李四") // 第3个 李四 slice = append(slice, "王五") // 第4个 王五 slice = append(slice, "赵六") // 第5个 ×× --- 结束位置(不含) slice = append(slice, "孙七") // 第6个 slice = append(slice, "周八") // 第7个 slice = append(slice, "吴九") // 第8个 slice = append(slice, "郑十") // 第9个 fmt.Printf("%+v \n", slice[2:5]) // [张三 李四 王五] }
Copyright © 2024 码农人生. All Rights Reserved