-
字符串长度计算
- 在Go语言中,可以使用
len()函数来计算字符串的长度。这个长度是指字符串中字节(byte)的数量。例如:
str := "Hello, World!" length := len(str) // length的值为13- 需要注意的是,如果字符串包含多字节字符(如UTF - 8编码中的中文等非ASCII字符),
len()函数返回的是字节数,而不是字符数。例如,对于字符串"你好",在UTF - 8编码下,len("你好")的值为6,因为每个中文字符占用3个字节。
- 在Go语言中,可以使用
-
字符串拼接
- 使用
+运算符:可以使用+运算符来拼接两个字符串。例如:
str1 := "Hello" str2 := " World" result := str1 + str2 // result的值为"Hello World"- 使用
fmt.Sprintf()函数:这个函数可以按照指定的格式将多个值转换为字符串并拼接在一起。例如:
name := "Alice" age := 30 str := fmt.Sprintf("My name is %s and I'm %d years old.", name, age) // str的值为"My name is Alice and I'm 30 years old."- 使用
strings.Builder(高效拼接):当需要拼接多个字符串时,strings.Builder是一种高效的方式。例如:
var builder strings.Builder builder.WriteString("Hello") builder.WriteString(" World") result := builder.String() // result的值为"Hello World"strings.Builder在拼接字符串时避免了频繁地创建新的字符串对象,因此在拼接大量字符串时性能更好。
- 使用
-
字符串截取
- 可以通过切片操作来截取字符串。字符串在Go语言中可以看作是一个字节切片,索引从0开始。例如:
str := "Hello, World!" subStr := str[0:5] // subStr的值为"Hello",截取从索引0(包含)到索引5(不包含)的部分- 也可以省略切片的起始索引或结束索引。省略起始索引时,从字符串开头开始截取;省略结束索引时,截取到字符串末尾。例如:
subStr1 := str[:5] subStr2 := str[7:] // subStr1的值为"Hello",subStr2的值为"World!" -
字符串查找
- 使用
strings.Index()函数:可以查找一个子字符串在另一个字符串中的位置。它返回子字符串第一次出现的索引,如果没有找到则返回 - 1。例如:
str := "Hello, World!" index := strings.Index(str, "World") // index的值为7,表示"World"在原字符串中第一次出现的索引为7- 使用
strings.LastIndex()函数:用于查找子字符串在字符串中最后一次出现的位置。例如:
str := "Hello, World! Hello" lastIndex := strings.LastIndex(str, "Hello") // lastIndex的值为13,表示"Hello"在原字符串中最后一次出现的索引为13 - 使用
-
字符串比较
- 使用
==和!=运算符:可以比较两个字符串是否相等或不相等。例如:
str1 := "Hello" str2 := "Hello" if str1 == str2 { // 两个字符串相等 }- 使用
strings.Compare()函数(功能更丰富):这个函数比较两个字符串并返回一个整数。如果返回值为0,表示两个字符串相等;如果返回值小于0,表示第一个字符串小于第二个字符串;如果返回值大于0,表示第一个字符串大于第二个字符串。不过,在大多数情况下,使用==和!=运算符就足够了。例如:
str1 := "abc" str2 := "abd" result := strings.Compare(str1, str2) // result的值为-1,表示str1小于str2 - 使用