golang中常用的字符串操作

package main

import (
	"fmt"
	"strconv"
	"strings"
)

func main() {

	//1.len()统计字符长度
	str := "hello" //golang中的编码统一为utf-8(ascii的字符(字母和数字)占一个字节,汉字占三个字节)
	fmt.Println(len(str))

	//2.字符串遍历时,同时处理有中文的问题r:=[]rune()
	str2 := "2008!北京欢迎您!"
	r := []rune(str2)
	for i := 0; i < len(r); i++ {

		fmt.Printf("字符%d=%c\n", i, r[i])
	}

	//3.字符串转整数:n,err := strconv.Atoi()
	n, err := strconv.Atoi("123456") //检验数字字符串转整数
	if err != nil {
		fmt.Println("转换错误", err)
	} else {
		fmt.Println("转成的结果是", n)
	}

	//4.整数转字符串 str := strconv.Itoa()
	str3 := strconv.Itoa(123)
	fmt.Printf("str = %v, str = %T\n", str3, str3)

	//5.字符串转[]byte()
	var bytes = []byte("hello go") //字母编码
	fmt.Printf("byte = %v\n", bytes)

	//6.ascii码 []byte转字符串
	str4 := string([]byte{97, 98, 99}) //编码转字符
	fmt.Println("str = ", str4)

	//7.十进制转2.8.16进制
	str5 := strconv.FormatInt(123, 2)
	str6 := strconv.FormatInt(123, 8)
	str7 := strconv.FormatInt(123, 16)
	fmt.Println("123对应的二进制数是 ", str5)
	fmt.Println("123对应的八进制数是 ", str6)
	fmt.Println("123对应的十六进制数是 ", str7)

	//8.查找子串是否在指定的字符串中: strings.Contains("seafood", "foo")
	b := strings.Contains("seafood", "foo") //b返回布尔值
	fmt.Println(b)

	//9.统计一个字符串中有几个指定的子串: strings.Count("ceheese", "e")
	num := strings.Count("ceheese", "e") //num返回e的个数
	fmt.Println(num)

	//10.不区分大小写的字符串比较(==是区分字母大小写的):         fmt.Println(string.EqualFold("abc", "Abc"))
	fmt.Println(strings.EqualFold("abc", "Abc")) //返回布尔值
	fmt.Println("abc" == "ABC")                  //区分大小写的字符串比较,返回布尔值

	//11.返回子串在字符串第一次出现的index值,如果没有返回-1: strings.Index("NLT_abc", "abc")
	str8 := strings.Index("NLT_abc", "abc") //返回首次出现的位置
	str9 := strings.Index("NLT_abc", "A")
	fmt.Println(str8)
	fmt.Println(str9)

	//12.返回子串在字符串第一次出现的index值,如果没有返回-1: strings.LastIndex("NLT_abc_S", "S")
	str10 := strings.Index("NLT_abc_S", "T") //返回首次出现的位置
	str11 := strings.Index("NLT_abc_S", "S")
	fmt.Println(str10)
	fmt.Println(str11)

	//13.将指定的几个子串替换成另一个子串:strings.Replace("go go hello", "go", "go语言", n)
	//n可以指定你希望替换几个,如果n=-1表示全部替换
	str12 := strings.Replace("go go hello", "go", "go 语言", 2)
	fmt.Println(str12)

	//14.按照指定的某个字符,为分割标识,将一个字符串拆分成字符串数组:strings.Split("hello,world,lady", ",")
	str13 := strings.Split("hello,world,lady", ",")
	fmt.Println(str13)

	//15.字符串的字母进行大小写的转换:strings.ToLower()
	//strings.ToUpper()
	str14 := strings.ToLower("HeLlO, wOrLd")
	str15 := strings.ToUpper("StAr, GaZeR")
	fmt.Println(str14, str15)

	//16.将字符串左右两边的空格去掉:strings.TrimSpace("")
	str16 := strings.TrimSpace("    abc    ")
	fmt.Println(str16)

	//17.将字符串左右两边指定的字符去掉:strings.Trim(),可同时去掉几种不同的字符
	str17 := strings.Trim("!def!", "!")
	fmt.Println(str17)

	//18.将字符串左边的指定字符去掉:strings.TrimLeft()
	//将字符串右边的指定字符去掉:strings.TrimRight()
	str18 := strings.TrimLeft("!!!!ghi", "!")
	str19 := strings.TrimRight("jkl~~~", "~")
	fmt.Println(str18, str19)

	//19.判断字符串是否以指定的字符串开头/结束 strings.HasPrefix()/strings.HasSuffix()
	fmt.Println(strings.HasPrefix("star gazer", "s")) //true
	fmt.Println(strings.HasSuffix("star gazer", "r")) //true
}

  

posted @ 2022-02-22 18:48  Star_Gazer  阅读(72)  评论(0编辑  收藏  举报