十、字符串操作

1.字符串操作

  • 在对字符串进行处理时,需要借助于包“strings”
1.1 Contains
  • func Contains(s, substr string) bool
  • 功能:字符串s中是否包含substr,返回bool值
func main() {
	str := "hello world"
	fmt.Println(strings.Contains(str, "hello")) //true
	fmt.Println(strings.Contains(str, "zhang")) //false
}
1.2 Join
  • func Join(a []string, sep string) string
  • 功能:字符串链接,把slice a通过sep链接起来
func main() {
	s := []string{"abc", "hello", "golang", "java", "python"}
	buf := strings.Join(s, "|")
	fmt.Println(buf) //abc|hello|golang|java|python
}
1.3 Index
  • func Index(s, sep string) int
  • 功能:在字符串s中查找sep所在的位置,返回位置值,找不到返回-1
func main() {
	fmt.Println(strings.Index("abc hello golang", "hello")) //4
	fmt.Println(strings.Index("abc hello golang", "world")) //1
}
1.4 Repeat
  • func Repeat(s string, count int) string
  • 功能:重复s字符串count次,最后返回重复的字符串
func main() {
	buf := strings.Repeat("go", 3)
	fmt.Println(buf) //gogogo
}
1.5 Replace
  • func Replace(s, old, new string, n int) string
  • 功能:在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示全部替换
func main() {
	fmt.Println(strings.Replace("oink oink oink", "k", "@", 2))        //oin@ oin@ oink
	fmt.Println(strings.Replace("oink oink oink", "oink", "xxoo", -1)) //xxoo xxoo xxoo
}
1.6 Split
  • func Split(s, sep string) []string
  • 功能:把s字符串按照sep分割,返回slice
func main() {
	fmt.Println(strings.Split("oink|oink|oink", "|")) //[oink oink oink]
}
1.7 Trim
  • func Trim(s string, cutset string) string
  • 功能:在s字符串的头部和尾部去除cutset指定的字符串
func main() {
	fmt.Println(strings.Trim("#xxoo#", "#")) //xxoo
}
1.8 Fields
  • func Fields(s string) []string
  • 功能:去除s字符串的空格符,并且按照空格分割返回slice
func main() {
	fmt.Println(strings.Fields("   are    you   ok    ?    ")) //[are you ok ?]
}

2.字符串转换

  • 相应的字符串转换函数都在”strconv”包。
2.1 Format
  • Format 系列函数把其他类型的转换为字符串。
func main() {
	var str string

	str = strconv.FormatBool(false) //将bool类型转换为字符串
	fmt.Println(str)                //false

	str = strconv.Itoa(888) //整型转换为字符串
	fmt.Println(str)        //888

	//'f'指打印格式,以小数方式;4指小数点位数;64以float64处理
	str = strconv.FormatFloat(3.14, 'f', 4, 64)
	fmt.Println(str) //3.1400
}
2.2 Parse
  • Parse 系列函数把字符串转换为其他类型
func main() {
	var flag bool
	var err error

	//字符串转换为bool
	flag, err = strconv.ParseBool("true")
	if err == nil {
		fmt.Printf("%T\n", flag) //bool
		fmt.Println(flag)        //true
	} else {
		fmt.Println("err=", err)
	}

	//字符串转换为整型
	a, _ := strconv.Atoi("123")
	fmt.Printf("%T\n", a) //int
	fmt.Println(a)        //123

	//字符串转换为浮点型
	b, err := strconv.ParseFloat("3.14", 64)
	if err == nil {
		fmt.Printf("%T\n", b) //float64
		fmt.Println(b)        //3.14
	} else {
		fmt.Println("err=", err)
	}
}
2.3 Append
  • Append 系列函数将整数等转换为字符串后,添加到现有的字节数组中。
func main() {
	slice := make([]byte, 0, 1024)
	slice = strconv.AppendBool(slice, true)
	//1234为要追加的数;10为指定十进制方式追加
	slice = strconv.AppendInt(slice, 1234, 10)
	slice = strconv.AppendQuote(slice, "hello")

	fmt.Println(slice) //[116 114 117 101 49 50 51 52 34 104 101 108 108 111 34]
	//转换string后再打印
	fmt.Println(string(slice)) //true1234"hello"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值