Go语言中字符串处理

Jicheng's Blog / 2023-08-10 / 原文

Go 语言为字符串处理提供了丰富的功能。以下是处理字符串的一些常见方法和函数:

  1. 基本操作:

    • 获取字符串长度:len(str)
    • 字符串连接:str1 + str2
    • 访问特定字符(字节):str[index]
  2. 字符串包 (strings 包):

    • 检查字符串是否包含子串:strings.Contains(str, substr)
    • 字符串比较:strings.Compare(str1, str2)
    • 字符串计数:strings.Count(str, substr)
    • 字符串前缀和后缀检查:strings.HasPrefix(str, prefix)strings.HasSuffix(str, suffix)
    • 字符串索引:strings.Index(str, substr)strings.LastIndex(str, substr)
    • 字符串替换:strings.Replace(str, old, new, n)
    • 字符串分割:strings.Split(str, sep)
    • 字符串转换为大写或小写:strings.ToUpper(str)strings.ToLower(str)
    • 字符串修剪:strings.Trim(str, cutset)strings.TrimSpace(str)
  3. 字节切片与字符串间的转换:

    • 转换字节切片为字符串:string(byteSlice)
    • 转换字符串为字节切片:[]byte(str)
  4. 字符串格式化 (fmt 包):

    • 格式化字符串:fmt.Sprintf(formatString, args...)
    • 打印格式化的字符串:fmt.Printf(formatString, args...)
    • 从字符串读取格式化的输入:fmt.Sscanf(str, formatString, &vars...)
  5. 正则表达式 (regexp 包):

    • 匹配字符串:regexp.MatchString(pattern, str)
    • 查找匹配的子串:regexp.FindString(pattern, str)
    • 替换匹配的子串:regexp.ReplaceAllString(pattern, replacement)
  6. 多行字符串:

    • 使用反引号(`)创建多行字符串。
  7. 字符串转换 (strconv 包):

    • 将字符串转换为基本数据类型:strconv.Atoi(str)strconv.ParseBool(str)strconv.ParseFloat(str, bitSize)
    • 将基本数据类型转换为字符串:strconv.Itoa(i)strconv.FormatBool(b)strconv.FormatFloat(f, fmt, prec, bitSize)

以下是一些上述方法的示例:

package main

import (
	"fmt"
	"strings"
)

func main() {
	str := "Hello, World!"

	// 使用 strings 包的方法
	fmt.Println(strings.Contains(str, "World")) // true
	fmt.Println(strings.Replace(str, "World", "Go", 1)) // Hello, Go!
	fmt.Println(strings.Split(str, ",")) // [Hello  World!]

	// 字符串长度
	fmt.Println(len(str)) // 13

	// 字符串连接
	newStr := str + " How are you?"
	fmt.Println(newStr) // Hello, World! How are you?
}

这只是 Go 语言中字符串处理的一部分功能。更多详细的功能可以在官方文档中找到。