go语言基础-----10-----字符串的相关操作(操作函数、字符串转换)

1 字符串操作的常用函数

1、Contains

func Contains(s, substr string) bool
功能:字符串s中是否包含substr,返回bool

2、Join

func Join(a []string, sep string) string
功能:字符串链接,把slice a通过sep链接起来 

3、Index

func Index(s, sep string) int
功能:在字符串s中查找sep所在的位置,返回位置值,找不到返回-1

4、Repeat

func Repeat(s string, count int) string
功能:重复s字符串count次,最后返回重复的字符串

5、Replace

func Replace(s, old, new string, n int) string
功能:在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示全部替换

6、Split

func Split(s, sep string) []string
功能:把s字符串按照sep分割,返回slice

7、Trim


func Trim(s string, cutset string) string
功能:在s字符串的头部和尾部去除cutset指定的字符串

8、Fields

func Fields(s string) []string
功能:去除s字符串的空格符,并且按照空格分割返回slice

2 代码实践

package main

import (
	"fmt"
	"strings"
)

func main(){
	// 1. Contains
	//"hellogo"中是否包含"hello", 包含返回true, 不包含返回false
	fmt.Println(strings.Contains("hellogo", "hello"))
	fmt.Println(strings.Contains("hellogo", "abc"))

	// 2. Joins 组合
	s := []string{"abc", "hello", "mike", "go"}
	buf := strings.Join(s, "x")
	fmt.Println("buf = ", buf)

	// 3. Index, 查找子串的位置
	fmt.Println(strings.Index("abcdhello", "hello"))
	fmt.Println(strings.Index("abcdhello", "go")) //不包含子串返回-1

	// 4. 重复多少次,这里重复3次
	buf = strings.Repeat("go", 3)
	fmt.Println("buf = ", buf) //"gogogo"

	// 5. Replace
	// 在s字符串中,把old字符串替换为new字符串,n表示替换的次数,小于0表示全部替换
	fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2))
	fmt.Println(strings.Replace("oink oink oink", "oink", "moo", -1))

	// 6. Split 以指定的分隔符拆分,返回切片
	buf = "hello@abc@go@mike"
	s2 := strings.Split(buf, "@")
	fmt.Println("s2 = ", s2)

	// 7. Trim去掉两头的字符
	buf = strings.Trim("      are u ok?          ", " ") //去掉头部尾部的空格
	fmt.Printf("buf = #%s#\n", buf)
	fmt.Printf("[%q]\n", strings.Trim(" !!! Achtung !!! ", "! "))	// 输出: ["Achtung"]
	fmt.Printf("[%q]\n", strings.Trim(" !!! Achtung !!! ", " !"))	// 同样输出: ["Achtung"]
																					// 说明Trim可以去掉头尾包含这空格、!的内容。

	// 8. 去除s字符串的空格符,并且按照空格分割返回slice
	s3 := strings.Fields("      are u ok?          ")
	//fmt.Println("s3 = ", s3)
	for i, data := range s3 {
		fmt.Println(i, ", ", data)
	}
}

在这里插入图片描述

3 字符串的转换

package main

import (
	"fmt"
	"strconv"
)

func main(){

	// 1. 转换为字符串后追加到字节数组
	slice := make([]byte, 0, 1024)
	fmt.Println("slice = ", slice)
	slice = strconv.AppendBool(slice, true)
	//第二个数为要追加的数,第3个为指定10进制方式追加
	slice = strconv.AppendInt(slice, 1234, 10)
	slice = strconv.AppendQuote(slice, "abcgohello")
	fmt.Println("slice = ", string(slice)) //转换string后再打印

	fmt.Println("=============================")

	// 2. 其它类型转换为字符串
	var str string
	str = strconv.FormatBool(false)
	fmt.Println("str = ", str)

	//'f' 指打印格式,以小数方式, -1指小数点位数(紧缩模式), 64以float64处理
	str = strconv.FormatFloat(3.14, 'f', -1, 64)
	fmt.Println("str = ", str)

	str = strconv.Itoa(6666)// 整型转字符串,常用
	fmt.Println("str = ", str)

	fmt.Println("=============================")

	// 3. 字符串转其它类型
	var flag bool
	var err error
	flag, err = strconv.ParseBool("true")
	if err == nil {
		fmt.Println("flag = ", flag)
	} else {
		fmt.Println("err = ", err)
	}

	a, _ := strconv.Atoi("567") // 把字符串转换为整型
	fmt.Println("a = ", a)

}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值