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)

posted @   我也有梦想呀  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2022-05-02 SpringBoot-Validate优雅的实现参数校验,详细示例~
点击右上角即可分享
微信分享提示