golang中出于性能考虑的那些实用代码片段 |字符串篇

出于性能考虑的那些实用代码片段 |字符串篇

在我们编程时,总是需要考虑性能方面的问题,这既能降低成本,又能提高用户的体验。好的性能的代码总是有好处的。

字符串

字符串替换/修改

当我们需要修改或替换某个字符串中的字符时,为了性能的优化,可以使用[ ]byte类型,再将其以数组的形式将其替换掉。

juejinStr:="gueJin"
c:=[]byte(str)
c[0]='J' 
jueJinStrTrue:= string(c) 

fmt.Print(jueJinStrTrue)//打印结果为JueJin 

截取字符串

当我们截取字符串时,可以将字符串类型当成数组,以数组的形式将其截取

someStr := str[a:b]

// 举例
str:="HelloJueJin"
someStr:=str[5:]  
fmt.Print(someStr)   //打印结果为:JueJin

遍历字符串

遍历字符串我们一般使用for和for···range两种

// len()函数获取str的长度(字节数),使用for循环
for i:=0; i < len(str); i++ {
    
    
   fmt.Println(str[i])
}

for i, s := range str {
    
    
   fmt.Println(i,s)
}

获取字符串字节数

我们获取字符串字节数一般使用len()方法,但是,还有一种最快速的方法:
utf8.RuneCountInString(str)

str:="HelloJueJin"
fmt.Println(utf8.RuneCountInString(str),len(str)) //打印结果都为11

字符串拼接

在golang中字符串拼接有很多种,每种都有它的优点。

  • 1、使用"+="(使用起来最简单)
//示例:
str:="Jue"
str1:="Jin"
str+=str1
fmt.Print(str) //打印结果为:JueJin
  • 2、使用"+"

据说他是性能最好的

str:="Jue"
str1:="Jin"
strSum=str+str1
fmt.Print(strSum) //打印结果为:JueJin
  • 3、使用strings.Join()

它的性能也不错噢

  str := []string{
    
    "Jue", "Jin", "!!!"}
  // 第二个参数为每个字符串相隔的符号,我们这了没有设置,所以没有符号相隔
  var strJoin string = strings.Join(str, " ")
  fmt.Print(strJoin)//打印结果为:JueJin!!!
  • 4、使用bytes.Buffer

当使用字符数量非常庞大时推荐使用这个

var (
		buf bytes.Buffer
		str  string
	)
	buf.WriteString("Jue")
	buf.WriteString("Jin")
	buf.WriteString("!")
	buf.WriteString("!")
        buf.WriteString("!")
	str = buf.String()
        fmt.Println(str)// 打印结果为:JueJin!!!

猜你喜欢

转载自blog.csdn.net/y943711797/article/details/126875150