Go strings 字符串处理包常用方法详解

golang字符串相关操作主要使用strings包下相对应方法,本文主要介绍strings包下一些常用方法的使用方法。
函数:Contain(s,str string) bool
说明:查找子串是否在指定的字符串中
实例:

package main
import (
    "fmt"
    "strings"
)
func main() {
    fmt.Println(strings.Contains("TigerwolfC", "wolf")) //true
    fmt.Println(strings.Contains("TigerwolfC", "bar")) //false
    fmt.Println(strings.Contains("TigerwolfC", ""))    //true
    fmt.Println(strings.Contains("", ""))    //true 这里要特别注意
    fmt.Println(strings.Contains("我是中国人", "我"))     //true
}

函数: ContainsAny(s, chars string) bool
说明: 判断字符串 s 中是否包含 chars 中的任何一个字符,如果有返回 true,否则返回false
实例:

 str := "Hello World"
 fmt.Println(strings.ContainsAny(str, "W"))          // true
 fmt.Println(strings.ContainsAny("foo", ""))          // false
 fmt.Println(strings.ContainsAny(str, "def"))        // true
 fmt.Println(strings.ContainsAny("", ""))             // false

函数: Count(s, sep string) int
说明: 判断字符 sep 在字符串 s 总共出现的次数,如果不存在返回0
实例:

 str := "Hello World"
 fmt.Println(strings.Count(str, "e"))   //程序输出 1
 str1 := "Hello Weed"
 fmt.Println(strings.Count(str1, "e"))   //程序输出 3
 str2 := "Hello World"
 fmt.Println(strings.Count(str2, "p"))   //程序输出 0

函数: EqualFold(s, t string) bool
说明: 判断字符串 s 是否与字符串 t 相等,并且不区分大小写
实例:

str := "Hello World"
fmt.Println(strings.EqualFold(str, "hello world"))  //程序输出 true

函数: Fields(s string) []string
说明: 将字符串 s 以空格为分隔符拆分成若干个字符串,若成功则返回分割后的字符串切片
实例:

  str := "Hello World"
  for _, v := range strings.Fields(str) {
        fmt.Println(v)
   }
//程序输出 “Hello” 和 "World"

函数: HasPrefix(s, prefix string) bool
说明: 判断字符串 s 是否是以字符 prefix 开头,如果是返回 true 否则返回 false
实例:

  str := "Hello World"
  fmt.Println(strings.HasPrefix(str, "He"))  //程序输出 true

函数: HasSuffix(s, suffix string) bool
说明: 判断字符串 s 是否是以字符 suffix 结束,如果是返回 true 否则返回 false
实例:

str := "Hello World"
fmt.Println(strings.HasSuffix("str ", "orld")) //程序输出 true

函数: Index(s, sep string) int
说明: 判断字符 sep 在字符串 s 中第一次出现的位置,如果成功则返回sep位置的索引,如果字符 sep 不在字符串 s 中则返回 -1
实例:

 str := "Hello World"
 fmt.Println(strings.Index(str, "e"))   //程序输出 1
 fmt.Println(strings.Index(str, "c"))   //程序输出 -1

函数: func LastIndex(s, sep string) int
说明:返回子串 sep 在字符串 s 中最后一次出现的位置,如果找不到,则返回 -1,如果 sep 为空,则返回字符串的长度
实例:

 str := "Hello World"
 fmt.Println(strings.LastIndex(str, "h"))   //程序输出 -1
 fmt.Println(strings.LastIndex(str, "o"))   //程序输出 7
 fmt.Println(strings.LastIndex(str, ""))    //程序输出 11

函数:func IndexAny(s, chars string) int
说明:返回字符串 chars 中的任何一个字符在字符串 s 中第一次出现的位置, 如果找不到,则返回 -1,如果 chars 为空,则返回 -1
实例:

str := "Hello World"
fmt.Println(strings.IndexAny(str, "abc"))   //程序输出 -1
fmt.Println(strings.IndexAny(str, "dof"))   //程序输出 4
fmt.Println(strings.IndexAny(str, ""))      //程序输出 -1

函数:func Join(a []string, sep string) string
说明:Join 将 a 中的子串连接成一个单独的字符串,子串之间用 sep 分隔
实例:

s := []string{"foo", "baa", "bae"}
fmt.Println(strings.Join(s, ", ")) // 返回字符串:foo, baa, bae

函数:func Repeat(s string, count int) string
说明:将 count 个字符串 s 连接成一个新的字符串
实例:

s := "Good!"
fmt.Println(strings.Repeat(s, 3)) // "Good!Good!Good!"

函数:func ToUpper(s string) string
说明:将 s 中的所有字符修改为其大写格式,对于非 ASCII 字符,它的大写格式需要查表转换
// ToLower
函数:func ToLower(s string) string
说明:将 s 中的所有字符修改为其小写格式,对于非 ASCII 字符,它的小写格式需要查表转换
函数:func ToTitle(s string) string
说明:ToTitle 将 s 中的所有字符修改为其 Title 格式,大部分字符的 Title 格式就是其 Upper 格式,只有少数字符的 Title 格式是特殊字符, 这里的 ToTitle 主要给 Title 函数调用

s := "heLLo worLd Abc"
fmt.Println(us := strings.ToUpper(s)) // "HELLO WORLD ABC"
fmt.Println(strings.ToLower(s)) // "hello world abc"
fmt.Println(strings.ToTitle(s)) // "HELLO WORLD ABC"

函数:func Trim(s string, cutset string) string
说明:将删除 s 首尾连续的包含在 cutset 中的字符
函数:func TrimLeft(s string, cutset string) string
说明:TrimLeft 将删除 s 头部连续的包含在 cutset 中的字符
函数:func TrimRight(s string, cutset string) string
说明:TrimRight 将删除 s 尾部连续的包含在 cutset 中的字符
实例:

s := " Hello 世界! "
ts := strings.Trim(s, " Helo!")
fmt.Printf("%q\n", ts) // "世界"
fmt.Printf("[%q]", strings.Trim(" !!! Achtung !!! ", "! ")) // ["Achtung"]

tr := strings.TrimLeft(s, " Helo")
fmt.Printf("%q\n", tr) // "世界! "

tx := strings.TrimRight(s, " 世界!")
fmt.Printf("%q\n", tx) // " Hello"

// TrimPrefix 删除 s 头部的 prefix 字符串
// 如果 s 不是以 prefix 开头,则返回原始 s
函数:func TrimPrefix(s, prefix string) string
说明:TrimPrefix 删除 s 头部的 prefix 字符串,如果 s 不是以 prefix 开头,则返回原始 s
实例:

s := "@Hello@世界!"
ts := strings.TrimPrefix(s, "@")
fmt.Printf("%q\n", ts) // " Hello@世界!"
tx:= strings.TrimPrefix(s, "$")
fmt.Printf("%q\n", tx) // " @Hello@世界!"

函数:func TrimSuffix(s, suffix string) string
说明:TrimSuffix 删除 s 尾部的 suffix 字符串,如果 s 不是以 suffix 结尾,则返回原始 s
实例:

s := "Hello 世界!!!!!"
ts := strings.TrimSuffix(s, "!!!!")
fmt.Printf("%q\n", ts) // "Hello 世界!"

函数:func Replace(s, old, new string, n int) string
说明:Replace 返回 s 的副本,并将副本中的 old 字符串替换为 new 字符串替换次数为 n 次,如果 n 为 -1,则全部替换,如果 old 为空,则在副本的每个字符之间都插入一个 new
实例:

fmt.Println(strings.Replace("ABAACEDF", "A", "a", 2)) // aBaACEDF
fmt.Println(strings.Replace("ABAACEDF", "A", "a", -1)) // aBaaCEDF

golang中字符串和各种int类型之间的相互转换方式
string转成int:
int, err := strconv.Atoi(string)
string转成int64:
int64, err := strconv.ParseInt(string, 10, 64)
int转成string:
string := strconv.Itoa(int)
int64转成string:
string := strconv.FormatInt(int64,10)

持续更新中
如有不对欢迎指正,相互学习,共同进步。

  • 0
    点赞
  • 8
    收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

wade3015

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值