Golang学习(十) 常用字符串函数

Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国Go语言文档中文版,Go语言中文网,中国 Golang 社区,Go语言学习园地,致力于构建完善的 Golang 中文社区,Go语言爱好者的学习家园。分享 Go 语言知识,交流使用经验https://studygolang.com/pkgdoc

1、统计字符串的长度,按照字符(len)

package main

import "fmt"

func main()  {
	str := "hello呗"  //一个字母占一个字节、汉字占3个字节
	fmt.Println("string = ", len(str)) //len统计长度
}

返回

string =  8

2、字符串遍历,同时处理有中文的问题(r = []rune)

package main

import "fmt"

func main()  {
	str := "hello呗"  
	str2 := []rune(str)   //rune会将str的字符串中的中文进行处理
                          //如果不处理,那么循环拿到的就是他的字符码了

	for i :=0; i < len(str2); i++ {
		fmt.Printf("字符=%c\n",str2[i])
	}
}

返回

字符=h
字符=e
字符=l
字符=l
字符=o
字符=呗

如果不使用rune则会出现如下情况

字符=h
字符=e
字符=l
字符=l
字符=o
字符=å
字符=*
字符=*

3、字符串转整数

package main

import (
	"fmt"
	"strconv"
)

func main()  {
	                             
	n, err := strconv.Atoi("12") //strconv.Atoi字符串转换
                                 //将字符串12转换为整数赋予给变量n
                                 //如果该字符串不能转换,则赋值给变量err方便判断
	if err != nil {
		fmt.Println("转换错误",err)
	}else{
		fmt.Println("转换的结果是",n)
	}
}

返回

转换的结果是 12

4、整数转字符串

package main

import (
	"fmt"
	"strconv"
)

func main()  {
    
	str := strconv.Itoa(12345)   //将数字12345转换为字符串赋值给str
	fmt.Printf("str=%v,str=%T",str,str)  //输出字符串值和类型
}

返回

str=12345,str=string

5、字符串转byte

package main

import (
	"fmt"
)

func main()  {
	var bytes = []byte("hello go")
	fmt.Printf("bytes=%v\n",bytes)
}

//返回ASCLL码 
//bytes=[104 101 108 108 111 32 103 111]

6、byte 转字符串

package main

import (
	"fmt"
)

func main()  {
	str := string([]byte{97,98,99})
	fmt.Printf("bytes=%v\n",str)
}

返回

bytes=abc


//这里将ASCLL码转换成对应的一个字符
//97,98,99
//a  b  c

7、十进制转换(2、8、16进制)

package main

import (
	"fmt"
	"strconv"
)

func main()  {

	str := strconv.FormatInt(123,2) //传入的参数,123是要转的数字,2是转换的类型
	fmt.Printf("123对应的二进制=%v\n",str)

	str2 := strconv.FormatInt(123,8)
	fmt.Printf("123对应的8进制=%v\n",str2)

	str3 := strconv.FormatInt(123,16)
	fmt.Printf("123对应的16进制=%v\n",str3)
}

返回

123对应的二进制=1111011
123对应的8进制=173
123对应的16进制=7b

8、查找子串是否在指定的字符串中

package main

import (
	"fmt"
	"strings"

)

func main()  {
    
	b := strings.Contains("seafood","foo") //判断字符串"seafood"中是否包含字符串"foo"
                                           //如果包含,则赋值给b变量 true,反之赋予false
	fmt.Printf("b=%v\n",b)
}

返回

b=true

9、统计一个字符串中有几个子串

package main

import (
	"fmt"
	"strings"

)

func main()  {
	num := strings.Count("ceheese","e")
	fmt.Printf("num=%v",num)
}

返回

num=4    //包含字符串e 的有4个,如果没有的话会返回0,比如统计一篇文章中有几个关键字

10、不区分大小写的字符串比较

package main

import (
	"fmt"
	"strings"

)

func main() {
	b := strings.EqualFold("abc", "ABC")
	fmt.Printf("b=%v\n", b)
}

返回

true

//这里是因为使用了EqualFold 不区分大小写的
//比如后面要输入验证码,我们通常是不区分大小写来用的
//当然比较详细的还是要区分大小写的

11、返回子串在字符串第一处出现的index值,如果没有返回-1

package main

import (
	"fmt"
	"strings"

)

func main()  {


	index := strings.Index("NLT_abc", "abc" )
	//返回后面的字符串abc在第一次字符串中从那位开始出现的
	//如果没有出现则会返回-1
	fmt.Printf("index=%v\n",index)
}

返回

index=4

12、返回子串在字符串最后一次出现的位置

package main

import (
	"fmt"
	"strings"

)

func main()  {
	index := strings.LastIndex("go golang","go")
	fmt.Printf("index=%v\n",index)
}

返回

index=3

13、将指定的子串替换成另一个字符串

package main

import (
	"fmt"
	"strings"

)

func main()  {
	str2 := strings.Replace("go go hello", "go", "北京",1)   
    //替换第一个的话, 结尾的值设置为1,替换两个输入2,-1全部替换

	fmt.Printf("index=%v\n",str2)
}

返回

index=北京 go hello

14、 按照指定的某个字符,为分割标识,将一个字符串拆分成数组

package main

import (
	"fmt"
	"strings"

)

func main()  {

	strArr := strings.Split("hello,wrold,ok",",")
                    //以逗号拆分字符串赋值到strArr数组

	fmt.Printf("index=%v\n",strArr)
}

返回

index=[hello wrold ok]

15、将字符串的字母进行大小写的转换

package main

import (
	"fmt"
	"strings"

)

func main()  {
	str := "goLang Hello"

	//全小写
	str2 := strings.ToLower(str)
	fmt.Printf("index=%v\n",str2)

	//全大写
	str3 := strings.ToUpper(str)
	fmt.Printf("index=%v\n",str3)
}

返回

index=golang hello
index=GOLANG HELLO

16、将字符串左右的空格去掉

package main

import (
	"fmt"
	"strings"

)

func main()  {
	str := strings.TrimSpace(" tn a lone gopher ntrn  ")
	fmt.Printf("str=%v\n",str)
}

返回

str=tn a lone gopher ntrn

17、将字符串两边指定的字符串去掉

package main

import (
	"fmt"
	"strings"

)

func main()  {
	str1 := strings.Trim("! hello !", " !")  //字符串  "! hello !"
	                                      //我想将第一个字符串左右两边的空格和感叹号都去掉
	                                      //那么在第二个位置就填写空格和感叹号

	fmt.Printf("str=%v\n",str1)


}

返回

str=hello

18、判断字符串是否以指定的字符串开头

package main

import (
	"fmt"
	"strings"

)

func main()  {

	str2 := strings.TrimLeft("! hello !", " !")  
                                         //strings.TrimLeft 将左边的值去除
    fmt.Printf("str=%v\n",str2)



	str3 := strings.TrimRight("! hello !", " !") 
                                         //strings.TrimRight 将右边的值去除
    fmt.Printf("str=%v\n",str3)
}

返回

str=hello !
str=! hello

19、判断字符串是否以指定的字符串开头

package main

import (
	"fmt"
	"strings"

)

func main()  {
	str := strings.HasPrefix("ftp://192.168.10.1","ftp")

	fmt.Printf("str=%v\n",str)
}

返回

str=true

20、判断字符串是否以指定的字符串结束

package main

import (
	"fmt"
	"strings"

)

func main()  {
	str := strings.HasSuffix("NLT_abc.jpg","abc")

	fmt.Printf("str=%v\n",str)
}

返回

str=false

你可能感兴趣的:(GO,GO函数,golang,开发语言,后端)