Golang项目开发常用工具库utils之string-字符串操作

utils包github地址:github.com/kirinlabs/utils

日常项目开发中少不了对字符串的各种处理,utils包中的str包含一些非常常用的工具方法,建议用go mod方式:

import "github.com/kirinlabs/uitls/str"

1,字符串截取

s := "hello github"

//从索引2开始,截取长度为3
str.Substr(s,2,3)    //llo


//从索引2开始,截取到最后
str.Substr(s,2)   //llo github


//从索引-1开始,截取到最后
str.Substr(s,-1)    //b


//截取最后3个字符
str.Substr(s,-3)    //hub

2,Before/BeforeLast/After/AfterLast操作

s := "github.com/kirinlabs/utils/str"

//获取第1个/之前的字符串
str.Before(s,"/")      //github.com


//获取最后1个/之前的字符串
str.BeforeLast(s,"/")  //github.com/kirinlabs/utils


//获取第1个/之后的字符串
str.After(s,"/")      //kirinlabs/utils/str


//获取最后1个/之后的字符串
str.AfterLast(s,"/")  //str


//如果想获取kirinlabs,则配合Before和After使用
str.Before(str.After(s,"/"),"/")      //kirinlabs


//如果想获取utils
str.AfterLast(str.BeforeLast(s,"/"),"/")    //utils

3,StartsWith和EndsWith操作

s := "github.com"

//以字符串开头,返回bool
str.StartsWith(s, "git")  //true

str.StartsWith(s, "hub")  //false


//以字符串结尾,返回bool
str.EndsWith(s, "com")  //true

str.EndsWith(s, "co")  //false

4,Go泛型转string

type User struct {
	Id   int
	Name string
}

val := []interface{}{
	1,
	true,
	nil,
	"github",
	map[string]string{},
	[]string{},
	&User{},
}

for _, v := range val {
	fmt.Println(str.String(v))
}

//最终输出
1
true

github
{}
[]
{"Id":0,"Name":""}

5,Length

s := "Hello中国"

//返回字符个数
str.Length(s)   //7


//GO内置len
len(s)          //11

6,RuneIndex

s := "Hello中国"

//字符串开始的位置
str.RuneIndex(s, "中国")   //5

 

你可能感兴趣的:(Go)