15、string
1.string是什么?
Go中的字符串是一个字节的切片,可以通过将其内容封装起在""中来创建字符串。Go中的的字符串是Unicode兼容的并且是UTF-8编码的。
2.string的使用
/**
* @author ly (个人博客:https://www.cnblogs.com/qbbit)
* @date 2023/5/2 11:32
* @tags 喜欢就去努力的争取
*/
package main
import "fmt"
func main() {
// 定义字符串
var s1 string = "hello"
var s2 string = `hello 世界` // 一个中文三个字节
println(s1)
println(s2)
// 字符串的长度:也就是字节的个数
fmt.Println(len(s1))
fmt.Println(len(s2))
// 获取某个字节
fmt.Println(s1[0])
fmt.Println(s2[0])
a := 'h'
b := 104
fmt.Printf("%c,%c,%c,%c\n", s1[0], s2[0], a, b)
// 遍历字符串
for i, v := range s2 {
fmt.Printf("%d,%c\t", i, v)
}
println("================================")
for i := 0; i < len(s2); i++ {
fmt.Printf("%d,%c \t", i, s2[i])
}
println("=====================")
// 字节转字符串
slice1 := []byte{65, 66, 67, 68, 69}
s3 := string(slice1)
fmt.Println(s3)
// 字符串转字节
s4 := "ABCDE"
slice2 := []byte(s4)
fmt.Println(slice2)
// 字符串是不允许修改的
// s4[0] = 'L'
}
3.strings:字符串的常用函数
s5 := `hello world`
// 判断指定的字符串是否存在
b1 := strings.Contains(s5, "hel")
fmt.Println("b1:", b1)
// 判断指定的字符串任意一个字符是否存在
b2 := strings.ContainsAny(s5, "abc")
fmt.Println("b2:", b2)
// 统计指定的字符串出现的个数
count := strings.Count(s5, "wo")
fmt.Println("count:", count)
// 判断字符串是否以指定的字符串开头
prefix := strings.HasPrefix(s5, "ld")
fmt.Println("prefix:", prefix)
// 判断字符串是否以指定的字符串结尾
suffix := strings.HasSuffix(s5, "he")
fmt.Println("suffix:", suffix)
// 获取指定字符串首次出现的索引位置
index := strings.Index(s5, "l")
fmt.Println("index:", index)
// 获取指定字符串最后一次出现的索引位置
lastIndex := strings.LastIndex(s5, "o")
fmt.Println("lastIndex:", lastIndex)
// 字符串拼接
sArr := []string{"he", "llo", "wo", "rld"}
join := strings.Join(sArr, "-")
fmt.Println(join)
// 字符串切割
s6 := "123abcABC你好中国"
split := strings.Split(s6, "")
for _, v := range split {
fmt.Println(v)
}
// 将指定的字符串重复拼接n次
repeat := strings.Repeat("hello", 5)
fmt.Println(repeat)
// 替换;n:指定替换的字符个数,-1全替换
replace := strings.Replace(s5, "l", "*", 1)
replace2 := strings.Replace(s5, "l", "*", -1)
fmt.Println(replace)
fmt.Println(replace2)
// 大小写转换
lower := strings.ToLower(s5)
upper := strings.ToUpper(s5)
fmt.Println(lower)
fmt.Println(upper)
/**
截取子字符串 类似Java语言中的substring
*/
s9 := "我是中国人"
subStr := s9[6:]
fmt.Println(subStr)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2022-05-02 SpringBoot-Validate优雅的实现参数校验,详细示例~